Skip to content

Commit 6502313

Browse files
committed
Fix stability tests to not create a new client per request
1 parent de5a1a8 commit 6502313

File tree

4 files changed

+31
-26
lines changed

4 files changed

+31
-26
lines changed

test/stability-tests/src/it/java/software/amazon/awssdk/stability/tests/s3/S3BaseStabilityTest.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.util.List;
2424
import java.util.concurrent.CompletableFuture;
2525
import java.util.function.IntFunction;
26-
2726
import org.apache.commons.lang3.RandomStringUtils;
2827
import software.amazon.awssdk.core.async.AsyncRequestBody;
2928
import software.amazon.awssdk.core.async.AsyncResponseTransformer;
@@ -46,6 +45,7 @@ public abstract class S3BaseStabilityTest extends AwsTestBase {
4645
protected static final String LARGE_KEY_NAME = "2GB";
4746

4847
protected static S3Client s3ApacheClient;
48+
private final S3AsyncClient testClient;
4949

5050
static {
5151
s3ApacheClient = S3Client.builder()
@@ -56,16 +56,18 @@ public abstract class S3BaseStabilityTest extends AwsTestBase {
5656
.build();
5757
}
5858

59+
public S3BaseStabilityTest(S3AsyncClient testClient) {
60+
this.testClient = testClient;
61+
}
62+
5963
protected String computeKeyName(int i) {
6064
return "key_" + i;
6165
}
6266

63-
protected abstract S3AsyncClient getTestClient();
64-
6567
protected abstract String getTestBucketName();
6668

6769
protected void doGetBucketAcl_lowTpsLongInterval() {
68-
IntFunction<CompletableFuture<?>> future = i -> getTestClient().getBucketAcl(b -> b.bucket(getTestBucketName()));
70+
IntFunction<CompletableFuture<?>> future = i -> testClient.getBucketAcl(b -> b.bucket(getTestBucketName()));
6971
String className = this.getClass().getSimpleName();
7072
StabilityTestRunner.newRunner()
7173
.testName(className + ".getBucketAcl_lowTpsLongInterval")
@@ -81,7 +83,7 @@ protected void downloadLargeObjectToFile() {
8183
File randomTempFile = RandomTempFile.randomUncreatedFile();
8284
StabilityTestRunner.newRunner()
8385
.testName("S3AsyncStabilityTest.downloadLargeObjectToFile")
84-
.futures(getTestClient().getObject(b -> b.bucket(getTestBucketName()).key(LARGE_KEY_NAME),
86+
.futures(testClient.getObject(b -> b.bucket(getTestBucketName()).key(LARGE_KEY_NAME),
8587
AsyncResponseTransformer.toFile(randomTempFile)))
8688
.run();
8789
randomTempFile.delete();
@@ -93,7 +95,7 @@ protected void uploadLargeObjectFromFile() {
9395
file = new RandomTempFile((long) 2e+9);
9496
StabilityTestRunner.newRunner()
9597
.testName("S3AsyncStabilityTest.uploadLargeObjectFromFile")
96-
.futures(getTestClient().putObject(b -> b.bucket(getTestBucketName()).key(LARGE_KEY_NAME),
98+
.futures(testClient.putObject(b -> b.bucket(getTestBucketName()).key(LARGE_KEY_NAME),
9799
AsyncRequestBody.fromFile(file)))
98100
.run();
99101
} catch (IOException e) {
@@ -110,7 +112,7 @@ protected void putObject() {
110112

111113
IntFunction<CompletableFuture<?>> future = i -> {
112114
String keyName = computeKeyName(i);
113-
return getTestClient().putObject(b -> b.bucket(getTestBucketName()).key(keyName),
115+
return testClient.putObject(b -> b.bucket(getTestBucketName()).key(keyName),
114116
AsyncRequestBody.fromBytes(bytes));
115117
};
116118

@@ -127,7 +129,7 @@ protected void getObject() {
127129
IntFunction<CompletableFuture<?>> future = i -> {
128130
String keyName = computeKeyName(i);
129131
Path path = RandomTempFile.randomUncreatedFile().toPath();
130-
return getTestClient().getObject(b -> b.bucket(getTestBucketName()).key(keyName), AsyncResponseTransformer.toFile(path));
132+
return testClient.getObject(b -> b.bucket(getTestBucketName()).key(keyName), AsyncResponseTransformer.toFile(path));
131133
};
132134

133135
StabilityTestRunner.newRunner()

test/stability-tests/src/it/java/software/amazon/awssdk/stability/tests/s3/S3CrtAsyncClientStabilityTest.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,22 @@
2929
*/
3030
public class S3CrtAsyncClientStabilityTest extends S3BaseStabilityTest {
3131
private static final String BUCKET_NAME = "s3crtasyncclinetstabilitytests" + System.currentTimeMillis();
32+
private static S3CrtAsyncClient s3CrtAsyncClient;
3233

33-
@Override
34-
protected S3AsyncClient getTestClient() {
35-
return S3CrtAsyncClient.builder()
36-
.region(Region.US_WEST_2)
37-
.credentialsProvider(CREDENTIALS_PROVIDER_CHAIN)
38-
.build();
34+
static {
35+
s3CrtAsyncClient = S3CrtAsyncClient.builder()
36+
.region(Region.US_WEST_2)
37+
.credentialsProvider(CREDENTIALS_PROVIDER_CHAIN)
38+
.build();
39+
}
40+
41+
public S3CrtAsyncClientStabilityTest() {
42+
super(s3CrtAsyncClient);
3943
}
4044

4145
@BeforeAll
4246
public static void setup() {
4347
s3ApacheClient.createBucket(b -> b.bucket(BUCKET_NAME));
44-
4548
}
4649

4750
@AfterAll
@@ -53,9 +56,10 @@ public static void cleanup() {
5356
.build()) {
5457
deleteBucketAndAllContents(s3NettyClient, BUCKET_NAME);
5558
}
59+
s3CrtAsyncClient.close();
60+
s3ApacheClient.close();
5661
}
5762

58-
5963
@Override
6064
protected String getTestBucketName() {
6165
return BUCKET_NAME;

test/stability-tests/src/it/java/software/amazon/awssdk/stability/tests/s3/S3NettyAsyncStabilityTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ public class S3NettyAsyncStabilityTest extends S3BaseStabilityTest {
2727
.build();
2828
}
2929

30+
public S3NettyAsyncStabilityTest() {
31+
super(s3NettyClient);
32+
}
33+
3034
@BeforeAll
3135
public static void setup() {
3236
s3NettyClient.createBucket(b -> b.bucket(bucketName)).join();
@@ -38,9 +42,6 @@ public static void cleanup() {
3842
s3NettyClient.close();
3943
}
4044

41-
@Override
42-
protected S3AsyncClient getTestClient() { return s3NettyClient; }
43-
4445
@Override
4546
protected String getTestBucketName() { return bucketName; }
4647

test/stability-tests/src/it/java/software/amazon/awssdk/stability/tests/s3/S3WithCrtAsyncHttpClientStabilityTest.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
package software.amazon.awssdk.stability.tests.s3;
22

3+
import java.time.Duration;
34
import org.junit.jupiter.api.AfterAll;
45
import org.junit.jupiter.api.BeforeAll;
56
import software.amazon.awssdk.core.retry.RetryPolicy;
6-
import software.amazon.awssdk.crt.io.EventLoopGroup;
7-
import software.amazon.awssdk.crt.io.HostResolver;
87
import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
98
import software.amazon.awssdk.http.crt.AwsCrtAsyncHttpClient;
109
import software.amazon.awssdk.services.s3.S3AsyncClient;
1110
import software.amazon.awssdk.stability.tests.exceptions.StabilityTestsRetryableException;
1211
import software.amazon.awssdk.stability.tests.utils.RetryableTest;
1312

14-
import java.time.Duration;
15-
1613
/**
1714
* Stability tests for {@link S3AsyncClient} using {@link AwsCrtAsyncHttpClient}
1815
*/
@@ -36,6 +33,10 @@ public class S3WithCrtAsyncHttpClientStabilityTest extends S3BaseStabilityTest {
3633
.build();
3734
}
3835

36+
public S3WithCrtAsyncHttpClientStabilityTest() {
37+
super(s3CrtClient);
38+
}
39+
3940
@BeforeAll
4041
public static void setup() {
4142
s3CrtClient.createBucket(b -> b.bucket(bucketName)).join();
@@ -47,9 +48,6 @@ public static void cleanup() {
4748
s3CrtClient.close();
4849
}
4950

50-
@Override
51-
protected S3AsyncClient getTestClient() { return s3CrtClient; }
52-
5351
@Override
5452
protected String getTestBucketName() { return bucketName; }
5553

0 commit comments

Comments
 (0)