Skip to content

Commit 6f63ac3

Browse files
fix test
1 parent 0881677 commit 6f63ac3

7 files changed

Lines changed: 34 additions & 22 deletions

File tree

include/aws/s3/private/s3_checksum_context.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ struct aws_s3_upload_request_checksum_context {
5656
AWS_S3_API
5757
struct aws_s3_upload_request_checksum_context *aws_s3_upload_request_checksum_context_new(
5858
struct aws_allocator *allocator,
59-
const struct aws_s3_meta_request_checksum_config_storage *checksum_config);
59+
const struct aws_s3_meta_request_checksum_config_storage *checksum_config,
60+
bool has_review_callback);
6061

6162
/**
6263
* Create a new upload request checksum context with an existing base64 encoded checksum value.
@@ -72,7 +73,8 @@ AWS_S3_API
7273
struct aws_s3_upload_request_checksum_context *aws_s3_upload_request_checksum_context_new_with_existing_base64_checksum(
7374
struct aws_allocator *allocator,
7475
const struct aws_s3_meta_request_checksum_config_storage *checksum_config,
75-
struct aws_byte_cursor existing_base64_checksum);
76+
struct aws_byte_cursor existing_base64_checksum,
77+
bool has_review_callback);
7678

7779
/**
7880
* Acquire a reference to the upload request checksum context.

source/s3_auto_ranged_put.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -200,10 +200,15 @@ static int s_process_part_info_synced(const struct aws_s3_part_info *info, void
200200
if ((checksum_cur != NULL) && (checksum_cur->len > 0)) {
201201
/* Create checksum context with pre-calculated checksum */
202202
part->checksum_context = aws_s3_upload_request_checksum_context_new_with_existing_base64_checksum(
203-
auto_ranged_put->base.allocator, &auto_ranged_put->base.checksum_config, *checksum_cur);
203+
auto_ranged_put->base.allocator,
204+
&auto_ranged_put->base.checksum_config,
205+
*checksum_cur,
206+
meta_request->upload_review_callback != NULL);
204207
} else {
205208
part->checksum_context = aws_s3_upload_request_checksum_context_new(
206-
auto_ranged_put->base.allocator, &auto_ranged_put->base.checksum_config);
209+
auto_ranged_put->base.allocator,
210+
&auto_ranged_put->base.checksum_config,
211+
meta_request->upload_review_callback != NULL);
207212
}
208213
if (part->checksum_context == NULL) {
209214
aws_mem_release(meta_request->allocator, part);
@@ -1072,8 +1077,8 @@ static int s_s3_new_upload_part_info_after_body(
10721077
/* Add part to array-list */
10731078
struct aws_s3_mpu_part_info *part =
10741079
aws_mem_calloc(meta_request->allocator, 1, sizeof(struct aws_s3_mpu_part_info));
1075-
part->checksum_context =
1076-
aws_s3_upload_request_checksum_context_new(meta_request->allocator, &meta_request->checksum_config);
1080+
part->checksum_context = aws_s3_upload_request_checksum_context_new(
1081+
meta_request->allocator, &meta_request->checksum_config, meta_request->upload_review_callback != NULL);
10771082
part->size = request->request_body.len;
10781083
aws_array_list_set_at(&auto_ranged_put->synced_data.part_list, &part, request->part_number - 1);
10791084
}

source/s3_checksum_context.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ static void s_aws_s3_upload_request_checksum_context_destroy(void *context) {
2525

2626
static struct aws_s3_upload_request_checksum_context *s_s3_upload_request_checksum_context_new_base(
2727
struct aws_allocator *allocator,
28-
const struct aws_s3_meta_request_checksum_config_storage *checksum_config) {
28+
const struct aws_s3_meta_request_checksum_config_storage *checksum_config,
29+
bool has_review_callback) {
2930
AWS_PRECONDITION(allocator);
3031

3132
struct aws_s3_upload_request_checksum_context *context =
@@ -48,7 +49,7 @@ static struct aws_s3_upload_request_checksum_context *s_s3_upload_request_checks
4849
context->algorithm = checksum_config->checksum_algorithm;
4950
context->location = checksum_config->location;
5051
context->encoded_checksum_size = aws_get_digest_size_from_checksum_algorithm(context->algorithm);
51-
context->has_review_callback = checksum_config->full_object_checksum_callback;
52+
context->has_review_callback = has_review_callback;
5253

5354
/* Convert to base64 encoded size */
5455
size_t encoded_size = 0;
@@ -63,9 +64,10 @@ static struct aws_s3_upload_request_checksum_context *s_s3_upload_request_checks
6364

6465
struct aws_s3_upload_request_checksum_context *aws_s3_upload_request_checksum_context_new(
6566
struct aws_allocator *allocator,
66-
const struct aws_s3_meta_request_checksum_config_storage *checksum_config) {
67+
const struct aws_s3_meta_request_checksum_config_storage *checksum_config,
68+
bool has_review_callback) {
6769
struct aws_s3_upload_request_checksum_context *context =
68-
s_s3_upload_request_checksum_context_new_base(allocator, checksum_config);
70+
s_s3_upload_request_checksum_context_new_base(allocator, checksum_config, has_review_callback);
6971
if (context && context->encoded_checksum_size > 0) {
7072
/* Initial the buffer for checksum */
7173
aws_byte_buf_init(&context->synced_data.base64_checksum, allocator, context->encoded_checksum_size);
@@ -76,9 +78,10 @@ struct aws_s3_upload_request_checksum_context *aws_s3_upload_request_checksum_co
7678
struct aws_s3_upload_request_checksum_context *aws_s3_upload_request_checksum_context_new_with_existing_base64_checksum(
7779
struct aws_allocator *allocator,
7880
const struct aws_s3_meta_request_checksum_config_storage *checksum_config,
79-
struct aws_byte_cursor existing_base64_checksum) {
81+
struct aws_byte_cursor existing_base64_checksum,
82+
bool has_review_callback) {
8083
struct aws_s3_upload_request_checksum_context *context =
81-
s_s3_upload_request_checksum_context_new_base(allocator, checksum_config);
84+
s_s3_upload_request_checksum_context_new_base(allocator, checksum_config, has_review_callback);
8285
if (context) {
8386
/* Initial the buffer for checksum from the exist checksum */
8487
if (context->encoded_checksum_size != existing_base64_checksum.len) {

source/s3_default_meta_request.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,8 +370,8 @@ static void s_s3_default_prepare_request_finish(
370370
* completeMPU.
371371
*/
372372
if (meta_request_default->request_type != AWS_S3_REQUEST_TYPE_COMPLETE_MULTIPART_UPLOAD) {
373-
checksum_context =
374-
aws_s3_upload_request_checksum_context_new(meta_request->allocator, &meta_request->checksum_config);
373+
checksum_context = aws_s3_upload_request_checksum_context_new(
374+
meta_request->allocator, &meta_request->checksum_config, meta_request->upload_review_callback != NULL);
375375
}
376376

377377
aws_s3_message_util_assign_body(

tests/s3_checksum_context_test.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ static int s_test_upload_request_checksum_context_get_checksum_cursor(struct aws
2121

2222
/* Test get checksum cursor with context that has no calculated checksum */
2323
struct aws_s3_upload_request_checksum_context *context =
24-
aws_s3_upload_request_checksum_context_new(allocator, &config);
24+
aws_s3_upload_request_checksum_context_new(allocator, &config, false);
2525
ASSERT_NOT_NULL(context);
2626

2727
struct aws_byte_cursor cursor = aws_s3_upload_request_checksum_context_get_checksum_cursor(context);
@@ -32,8 +32,8 @@ static int s_test_upload_request_checksum_context_get_checksum_cursor(struct aws
3232

3333
/* Test get checksum cursor with context that has calculated checksum */
3434
struct aws_byte_cursor existing_checksum = aws_byte_cursor_from_c_str("dGVzdA==");
35-
context =
36-
aws_s3_upload_request_checksum_context_new_with_existing_base64_checksum(allocator, &config, existing_checksum);
35+
context = aws_s3_upload_request_checksum_context_new_with_existing_base64_checksum(
36+
allocator, &config, existing_checksum, false);
3737
ASSERT_NOT_NULL(context);
3838

3939
cursor = aws_s3_upload_request_checksum_context_get_checksum_cursor(context);
@@ -69,7 +69,7 @@ static int s_test_upload_request_checksum_context_error_cases(struct aws_allocat
6969
struct aws_byte_cursor wrong_size_checksum = aws_byte_cursor_from_c_str("short");
7070
struct aws_s3_upload_request_checksum_context *context =
7171
aws_s3_upload_request_checksum_context_new_with_existing_base64_checksum(
72-
allocator, &config, wrong_size_checksum);
72+
allocator, &config, wrong_size_checksum, false);
7373
ASSERT_NULL(context);
7474

7575
/* Test helper functions with NULL context */
@@ -89,7 +89,7 @@ static int s_test_upload_request_checksum_context_error_cases(struct aws_allocat
8989
.has_full_object_checksum = false,
9090
};
9191
struct aws_s3_upload_request_checksum_context *context2 =
92-
aws_s3_upload_request_checksum_context_new(allocator, &config2);
92+
aws_s3_upload_request_checksum_context_new(allocator, &config2, false);
9393

9494
ASSERT_NOT_NULL(context2);
9595
ASSERT_FALSE(aws_s3_upload_request_checksum_context_should_calculate(context2));
@@ -102,7 +102,7 @@ static int s_test_upload_request_checksum_context_error_cases(struct aws_allocat
102102
.has_full_object_checksum = false,
103103
};
104104
struct aws_s3_upload_request_checksum_context *context3 =
105-
aws_s3_upload_request_checksum_context_new(allocator, &config3);
105+
aws_s3_upload_request_checksum_context_new(allocator, &config3, false);
106106

107107
ASSERT_NOT_NULL(context3);
108108
ASSERT_FALSE(aws_s3_upload_request_checksum_context_should_calculate(context3));
@@ -131,7 +131,7 @@ static int s_test_upload_request_checksum_context_different_algorithms(struct aw
131131
AWS_ZERO_STRUCT(config.full_object_checksum);
132132

133133
struct aws_s3_upload_request_checksum_context *context =
134-
aws_s3_upload_request_checksum_context_new(allocator, &config);
134+
aws_s3_upload_request_checksum_context_new(allocator, &config, false);
135135
ASSERT_NOT_NULL(context);
136136
ASSERT_INT_EQUALS(algorithms[i], context->algorithm);
137137
ASSERT_INT_EQUALS(AWS_SCL_HEADER, context->location);

tests/s3_checksum_stream_test.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ static int s_stream_chunk(
124124

125125
/* Create checksum context */
126126
struct aws_s3_upload_request_checksum_context *context =
127-
aws_s3_upload_request_checksum_context_new(allocator, &config);
127+
aws_s3_upload_request_checksum_context_new(allocator, &config, false);
128128
if (!context) {
129129
return AWS_OP_ERR;
130130
}

tests/s3_util_tests.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1059,6 +1059,8 @@ static int s_test_s3_checksum_header(struct aws_allocator *allocator, void *ctx)
10591059
ASSERT_FALSE(aws_s3_is_checksum_value_header_name(aws_byte_cursor_from_c_str("x-amz-checksum-type")));
10601060
ASSERT_FALSE(aws_s3_is_checksum_value_header_name(aws_byte_cursor_from_c_str("x-amz-checksum-mode")));
10611061
ASSERT_FALSE(aws_s3_is_checksum_value_header_name(aws_byte_cursor_from_c_str("x-amz-checksum-algorithm")));
1062+
ASSERT_FALSE(aws_s3_is_checksum_value_header_name(aws_byte_cursor_from_c_str("x-amz-cHeCKsuM-tYpE")));
1063+
ASSERT_FALSE(aws_s3_is_checksum_value_header_name(aws_byte_cursor_from_c_str("X-AMZ-CHECKSUM-ALGORITHM")));
10621064

10631065
aws_s3_library_clean_up();
10641066
return 0;

0 commit comments

Comments
 (0)