Skip to content

Commit 78e6b5b

Browse files
committed
fix for crc32
1 parent 10c337e commit 78e6b5b

File tree

3 files changed

+33
-38
lines changed

3 files changed

+33
-38
lines changed

test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/checksum/ChecksumIntegrationTesting.java

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ void putObject(UploadConfig config) throws Exception {
263263
Assumptions.assumeFalse(
264264
(config.getBaseConfig().getFlavor() == S3ClientFlavor.ASYNC_JAVA_BASED ||
265265
config.getBaseConfig().getFlavor() == S3ClientFlavor.TM_JAVA)
266-
&& (config.getBaseConfig().isPayloadSigning()
266+
&& (config.payloadSigning()
267267
// MRAP requires body signing
268268
|| config.getBaseConfig().getBucketType() == BucketType.MRAP),
269269
"Async payload signing doesn't work with Java based clients");
@@ -295,7 +295,7 @@ void putObject(UploadConfig config) throws Exception {
295295
ClientOverrideConfiguration.builder()
296296
.addExecutionInterceptor(recorder);
297297

298-
if (config.getBaseConfig().isPayloadSigning()) {
298+
if (config.payloadSigning()) {
299299
overrideConfiguration.addExecutionInterceptor(new EnablePayloadSigningInterceptor());
300300
}
301301

@@ -568,6 +568,15 @@ static class UploadConfig {
568568
private TestConfig baseConfig;
569569
private BodyType bodyType;
570570
private ContentSize contentSize;
571+
private boolean payloadSigning;
572+
573+
public void setPayloadSigning(boolean payloadSigning) {
574+
this.payloadSigning = payloadSigning;
575+
}
576+
577+
public boolean payloadSigning() {
578+
return payloadSigning;
579+
}
571580

572581
public TestConfig getBaseConfig() {
573582
return baseConfig;
@@ -746,14 +755,18 @@ private static byte[] largeContent() {
746755
private static List<UploadConfig> uploadConfigs() {
747756
List<UploadConfig> configs = new ArrayList<>();
748757

758+
boolean[] payloadSigningEnabled = {true, false};
749759
for (BodyType bodyType : BodyType.values()) {
750760
for (TestConfig baseConfig : testConfigs()) {
751761
for (ContentSize size : ContentSize.values()) {
752-
UploadConfig config = new UploadConfig();
753-
config.setBaseConfig(baseConfig);
754-
config.setBodyType(bodyType);
755-
config.setContentSize(size);
756-
configs.add(config);
762+
for(boolean payloadSigning : payloadSigningEnabled) {
763+
UploadConfig config = new UploadConfig();
764+
config.setPayloadSigning(payloadSigning);
765+
config.setBaseConfig(baseConfig);
766+
config.setBodyType(bodyType);
767+
config.setContentSize(size);
768+
configs.add(config);
769+
}
757770
}
758771
}
759772
}

test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/checksum/DownloadStreamingIntegrationTesting.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
4949
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
5050
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
51-
import software.amazon.awssdk.auth.signer.S3SignerExecutionAttribute;
5251
import software.amazon.awssdk.core.ResponseBytes;
5352
import software.amazon.awssdk.core.ResponseInputStream;
5453
import software.amazon.awssdk.core.async.AsyncResponseTransformer;
@@ -59,9 +58,7 @@
5958
import software.amazon.awssdk.regions.Region;
6059
import software.amazon.awssdk.services.s3.S3AsyncClient;
6160
import software.amazon.awssdk.services.s3.S3Client;
62-
import software.amazon.awssdk.services.s3.model.ChecksumAlgorithm;
6361
import software.amazon.awssdk.services.s3.model.ChecksumMode;
64-
import software.amazon.awssdk.services.s3.model.ChecksumType;
6562
import software.amazon.awssdk.services.s3.model.CompletedPart;
6663
import software.amazon.awssdk.services.s3.model.CreateMultipartUploadRequest;
6764
import software.amazon.awssdk.services.s3.model.CreateMultipartUploadResponse;
@@ -73,6 +70,7 @@
7370
import software.amazon.awssdk.services.sts.StsClient;
7471
import software.amazon.awssdk.testutils.InputStreamUtils;
7572
import software.amazon.awssdk.utils.Logger;
73+
import software.amazon.awssdk.utils.StringUtils;
7674
import software.amazon.awssdk.utils.ToString;
7775

7876
public class DownloadStreamingIntegrationTesting {
@@ -203,9 +201,8 @@ void downloadObject(DownloadConfig config) throws Exception {
203201
}
204202

205203
String receivedContentCRC32 = crc32(response.content());
206-
if (config.checksumModeEnabled()) {
207-
String s3Crc32 = response.crc32();
208-
assertThat(s3Crc32).isNotEmpty();
204+
String s3Crc32 = response.crc32();
205+
if (config.checksumModeEnabled() && StringUtils.isNotBlank(s3Crc32)) {
209206
assertThat(receivedContentCRC32)
210207
.withFailMessage("Mismatch with s3 crc32 for config " + config)
211208
.isEqualTo(s3Crc32);
@@ -218,8 +215,8 @@ void downloadObject(DownloadConfig config) throws Exception {
218215

219216
// 16 KiB
220217
static ObjectWithCRC uploadObjectSmall() throws IOException {
221-
LOG.debug(() -> "test setup - uploading small test object");
222218
String name = String.format("%s-%s.dat", System.currentTimeMillis(), UUID.randomUUID());
219+
LOG.debug(() -> "test setup - uploading small test object: " + name);
223220
ByteArrayOutputStream os = new ByteArrayOutputStream();
224221
byte[] rand = new byte[1024];
225222
for (int i = 0; i < 16; i++) {
@@ -242,8 +239,8 @@ static ObjectWithCRC uploadObjectSmall() throws IOException {
242239

243240
// 80 MiB
244241
static ObjectWithCRC uploadObjectLarge() throws IOException {
245-
LOG.debug(() -> "test setup - uploading large test object");
246242
String name = String.format("%s-%s.dat", System.currentTimeMillis(), UUID.randomUUID());
243+
LOG.debug(() -> "test setup - uploading large test object: " + name);
247244
ByteArrayOutputStream os = new ByteArrayOutputStream();
248245
byte[] rand = new byte[1024 * 1024];
249246
for (int i = 0; i < 80; i++) {
@@ -267,9 +264,8 @@ static ObjectWithCRC uploadObjectLarge() throws IOException {
267264

268265
// 80MiB, multipart default config
269266
static ObjectWithCRC uploadMultiPartObject() throws Exception {
270-
LOG.debug(() -> "test setup - uploading large test object - multipart");
271-
272267
String name = String.format("%s-%s.dat", System.currentTimeMillis(), UUID.randomUUID());
268+
LOG.debug(() -> "test setup - uploading large test object - multipart: " + name);
273269
ByteArrayOutputStream os = new ByteArrayOutputStream();
274270
byte[] rand = new byte[8 * 1024 * 1024];
275271
for (int i = 0; i < 10; i++) {

test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/checksum/TestConfig.java

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ public class TestConfig {
2525
private boolean forcePathStyle;
2626
private RequestChecksumCalculation requestChecksumValidation;
2727
private boolean accelerateEnabled;
28-
private boolean payloadSigning;
2928

3029
public S3ClientFlavor getFlavor() {
3130
return flavor;
@@ -67,14 +66,6 @@ public void setAccelerateEnabled(boolean accelerateEnabled) {
6766
this.accelerateEnabled = accelerateEnabled;
6867
}
6968

70-
public boolean isPayloadSigning() {
71-
return payloadSigning;
72-
}
73-
74-
public void setPayloadSigning(boolean payloadSigning) {
75-
this.payloadSigning = payloadSigning;
76-
}
77-
7869
@Override
7970
public String toString() {
8071
return "[" +
@@ -83,7 +74,6 @@ public String toString() {
8374
", forcePathStyle=" + forcePathStyle +
8475
", requestChecksumValidation=" + requestChecksumValidation +
8576
", accelerateEnabled=" + accelerateEnabled +
86-
", payloadSigning=" + payloadSigning +
8777
']';
8878
}
8979

@@ -94,22 +84,18 @@ public static List<TestConfig> testConfigs() {
9484
RequestChecksumCalculation[] checksumValidations = {RequestChecksumCalculation.WHEN_REQUIRED,
9585
RequestChecksumCalculation.WHEN_SUPPORTED};
9686
boolean[] accelerateEnabled = {true, false};
97-
boolean[] payloadSigningEnabled = {true, false};
9887
for (boolean pathStyle : forcePathStyle) {
9988
for (RequestChecksumCalculation checksumValidation : checksumValidations) {
10089
for (S3ClientFlavor flavor : S3ClientFlavor.values()) {
10190
for (BucketType bucketType : BucketType.values()) {
10291
for (boolean accelerate : accelerateEnabled) {
103-
for (boolean payloadSigning : payloadSigningEnabled) {
104-
TestConfig testConfig = new TestConfig();
105-
testConfig.setFlavor(flavor);
106-
testConfig.setBucketType(bucketType);
107-
testConfig.setForcePathStyle(pathStyle);
108-
testConfig.setRequestChecksumValidation(checksumValidation);
109-
testConfig.setAccelerateEnabled(accelerate);
110-
testConfig.setPayloadSigning(payloadSigning);
111-
configs.add(testConfig);
112-
}
92+
TestConfig testConfig = new TestConfig();
93+
testConfig.setFlavor(flavor);
94+
testConfig.setBucketType(bucketType);
95+
testConfig.setForcePathStyle(pathStyle);
96+
testConfig.setRequestChecksumValidation(checksumValidation);
97+
testConfig.setAccelerateEnabled(accelerate);
98+
configs.add(testConfig);
11399
}
114100
}
115101
}

0 commit comments

Comments
 (0)