@@ -315,6 +315,7 @@ static int s_test_s3_client_get_max_active_connections(struct aws_allocator *all
315315
316316 struct aws_s3_client * mock_client = aws_s3_tester_mock_client_new (& tester );
317317 * ((uint32_t * )& mock_client -> max_active_connections_override ) = 0 ;
318+ * ((uint32_t * )& mock_client -> ideal_connection_count ) = 100 ;
318319 mock_client -> client_bootstrap = & mock_client_bootstrap ;
319320 mock_client -> vtable -> get_host_address_count = s_test_get_max_active_connections_host_address_count ;
320321
@@ -329,10 +330,25 @@ static int s_test_s3_client_get_max_active_connections(struct aws_allocator *all
329330
330331 s_test_max_active_connections_host_count = 2 ;
331332
333+ /* Behavior should not be affected by max_active_connections_override since it is 0, and should just be in relation
334+ * to ideal-connection-count. */
335+ {
336+ ASSERT_TRUE (aws_s3_client_get_max_active_connections (mock_client , NULL ) == mock_client -> ideal_connection_count );
337+
338+ for (size_t i = 0 ; i < AWS_S3_META_REQUEST_TYPE_MAX ; ++ i ) {
339+ ASSERT_TRUE (
340+ aws_s3_client_get_max_active_connections (mock_client , mock_meta_requests [i ]) ==
341+ mock_client -> ideal_connection_count );
342+ }
343+ }
344+
332345 /* Max active connections override should now cap the calculated amount of active connections. */
333346 {
334347 * ((uint32_t * )& mock_client -> max_active_connections_override ) = 3 ;
335348
349+ /* Assert that override is low enough to have effect */
350+ ASSERT_TRUE (mock_client -> max_active_connections_override < mock_client -> ideal_connection_count );
351+
336352 ASSERT_TRUE (
337353 aws_s3_client_get_max_active_connections (mock_client , NULL ) ==
338354 mock_client -> max_active_connections_override );
@@ -346,6 +362,24 @@ static int s_test_s3_client_get_max_active_connections(struct aws_allocator *all
346362 }
347363 }
348364
365+ /* Max active connections override should be ignored since the calculated amount of max connections is less. */
366+ {
367+ * ((uint32_t * )& mock_client -> max_active_connections_override ) = 100000 ;
368+
369+ /* Assert that override is NOT low enough to have effect */
370+ ASSERT_TRUE (mock_client -> max_active_connections_override > mock_client -> ideal_connection_count );
371+
372+ ASSERT_TRUE (aws_s3_client_get_max_active_connections (mock_client , NULL ) == mock_client -> ideal_connection_count );
373+
374+ for (size_t i = 0 ; i < AWS_S3_META_REQUEST_TYPE_MAX ; ++ i ) {
375+ ASSERT_TRUE (mock_client -> max_active_connections_override > mock_client -> ideal_connection_count );
376+
377+ ASSERT_TRUE (
378+ aws_s3_client_get_max_active_connections (mock_client , mock_meta_requests [i ]) ==
379+ mock_client -> ideal_connection_count );
380+ }
381+ }
382+
349383 for (size_t i = 0 ; i < AWS_S3_META_REQUEST_TYPE_MAX ; ++ i ) {
350384 mock_meta_requests [i ] = aws_s3_meta_request_release (mock_meta_requests [i ]);
351385 }
0 commit comments