From 7ea97e576564775a287646a2b992f7b31a48b785 Mon Sep 17 00:00:00 2001 From: Eren Yeager <92114074+wty-Bryant@users.noreply.github.com> Date: Thu, 16 Jan 2025 18:13:51 -0500 Subject: [PATCH] Add integration test case for flex checksum (#2967) * add checksum test case where checksum is required without algo member * add changelog * update test comment * update test log --- .../dac44b16ae46483da9126a7088225e04.json | 8 +++++ .../integrationtest/s3/checksum_test.go | 32 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 .changelog/dac44b16ae46483da9126a7088225e04.json diff --git a/.changelog/dac44b16ae46483da9126a7088225e04.json b/.changelog/dac44b16ae46483da9126a7088225e04.json new file mode 100644 index 00000000000..46e4ac6e397 --- /dev/null +++ b/.changelog/dac44b16ae46483da9126a7088225e04.json @@ -0,0 +1,8 @@ +{ + "id": "dac44b16-ae46-483d-a912-6a7088225e04", + "type": "bugfix", + "description": "Add s3 checksum integration test case where operations require checksum but do not have input algorithm setting", + "modules": [ + "service/internal/integrationtest" + ] +} diff --git a/service/internal/integrationtest/s3/checksum_test.go b/service/internal/integrationtest/s3/checksum_test.go index 1014a66225a..9d7551870a1 100644 --- a/service/internal/integrationtest/s3/checksum_test.go +++ b/service/internal/integrationtest/s3/checksum_test.go @@ -541,6 +541,38 @@ func TestInteg_RequireChecksum(t *testing.T) { } } +func TestInteg_RequireChecksumWithoutRequestAlgorithmMember(t *testing.T) { + params := &s3.PutBucketOwnershipControlsInput{ + Bucket: &setupMetadata.Buckets.Source.Name, + OwnershipControls: &types.OwnershipControls{ + Rules: []types.OwnershipControlsRule{ + { + ObjectOwnership: types.ObjectOwnershipBucketOwnerPreferred, + }, + }, + }, + } + + t.Logf("putting bucket ownership control: %q", *params.Bucket) + result, err := s3client.PutBucketOwnershipControls(context.Background(), params) + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + computedChecksums, ok := s3.GetComputedInputChecksumsMetadata(result.ResultMetadata) + if !ok { + t.Fatalf("expect computed checksums metadata present, got %q", result) + } + + expectComputedChecksums := s3.ComputedInputChecksumsMetadata{ + ComputedChecksums: map[string]string{ + "CRC32": "cK9COg==", + }, + } + if diff := cmpDiff(expectComputedChecksums, computedChecksums); diff != "" { + t.Errorf("expect computed checksum metadata match: %s\n", diff) + } +} + func bufferLogger(t *testing.T) (logging.Logger, *bytes.Buffer) { var logged bytes.Buffer