From 7dc1e2e741e30bdaeab30b5e4456ced1140cbae0 Mon Sep 17 00:00:00 2001 From: Dengke Tang Date: Mon, 18 Dec 2023 11:06:05 -0800 Subject: [PATCH] check the metrics --- source/s3_meta_request.c | 2 +- tests/s3_cancel_tests.c | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/source/s3_meta_request.c b/source/s3_meta_request.c index 9d788f430..2785bf8aa 100644 --- a/source/s3_meta_request.c +++ b/source/s3_meta_request.c @@ -203,6 +203,7 @@ int aws_s3_meta_request_init_base( meta_request->type = options->type; /* Set up reference count. */ aws_ref_count_init(&meta_request->ref_count, meta_request, s_s3_meta_request_destroy); + aws_linked_list_init(&meta_request->synced_data.ongoing_http_request_list); if (part_size == SIZE_MAX) { aws_raise_error(AWS_ERROR_INVALID_ARGUMENT); @@ -226,7 +227,6 @@ int aws_s3_meta_request_init_base( /* Priority queue */ goto error; } - aws_linked_list_init(&meta_request->synced_data.ongoing_http_request_list); aws_array_list_init_dynamic( &meta_request->synced_data.event_delivery_array, diff --git a/tests/s3_cancel_tests.c b/tests/s3_cancel_tests.c index 895ae7905..505de9ad9 100644 --- a/tests/s3_cancel_tests.c +++ b/tests/s3_cancel_tests.c @@ -228,8 +228,23 @@ static int s3_cancel_test_helper_ex( ASSERT_SUCCESS(aws_s3_tester_send_meta_request_with_options(&tester, &options, &meta_request_test_results)); ASSERT_INT_EQUALS(AWS_ERROR_S3_CANCELED, meta_request_test_results.finished_error_code); - aws_s3_meta_request_test_results_clean_up(&meta_request_test_results); + if (cancel_type == S3_UPDATE_CANCEL_TYPE_MPU_ONGOING_HTTP_REQUESTS) { + /* Check the metric and see we have at least a request completed with AWS_ERROR_S3_CANCELED */ + /* The meta request completed, we can access the synced data now. */ + struct aws_array_list *metrics_list = &meta_request_test_results.synced_data.metrics; + bool cancelled_successfully = false; + for (size_t i = 0; i < aws_array_list_length(metrics_list); ++i) { + struct aws_s3_request_metrics *metrics = NULL; + aws_array_list_get_at(metrics_list, (void **)&metrics, i); + if (metrics->crt_info_metrics.error_code == AWS_ERROR_S3_CANCELED) { + cancelled_successfully = true; + break; + } + } + ASSERT_TRUE(cancelled_successfully); + } + aws_s3_meta_request_test_results_clean_up(&meta_request_test_results); if (cancel_type != S3_UPDATE_CANCEL_TYPE_MPU_CREATE_NOT_SENT) { ASSERT_TRUE(test_user_data.abort_successful); }