Skip to content

Commit dd48385

Browse files
virajjasanisteveloughran
authored andcommitted
HADOOP-19072 S3A: Override fs.s3a.performance.flags for tests (ADDENDUM 2) (apache#6993)
Second followup to apache#6543; all hadoop-aws integration tests complete correctly even when fs.s3a.performance.flags = * Contributed by Viraj Jasani
1 parent 5ea68e9 commit dd48385

13 files changed

+69
-74
lines changed

hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/contract/s3a/ITestS3AContractCreate.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,7 @@
2929
import org.apache.hadoop.fs.contract.AbstractFSContract;
3030
import org.apache.hadoop.fs.s3a.S3ATestUtils;
3131

32-
import static org.apache.hadoop.fs.s3a.Constants.FS_S3A_CREATE_PERFORMANCE;
33-
import static org.apache.hadoop.fs.s3a.Constants.FS_S3A_PERFORMANCE_FLAGS;
34-
import static org.apache.hadoop.fs.s3a.S3ATestUtils.removeBaseAndBucketOverrides;
32+
import static org.apache.hadoop.fs.s3a.S3ATestUtils.setPerformanceFlags;
3533

3634
/**
3735
* S3A contract tests creating files.
@@ -70,11 +68,9 @@ protected AbstractFSContract createContract(Configuration conf) {
7068

7169
@Override
7270
protected Configuration createConfiguration() {
73-
final Configuration conf = super.createConfiguration();
74-
removeBaseAndBucketOverrides(conf,
75-
FS_S3A_CREATE_PERFORMANCE,
76-
FS_S3A_PERFORMANCE_FLAGS);
77-
conf.setBoolean(FS_S3A_CREATE_PERFORMANCE, createPerformance);
71+
final Configuration conf = setPerformanceFlags(
72+
super.createConfiguration(),
73+
createPerformance ? "create" : "");
7874
S3ATestUtils.disableFilesystemCaching(conf);
7975
return conf;
8076
}

hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/contract/s3a/ITestS3AContractMkdir.java

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@
2222
import org.apache.hadoop.fs.contract.AbstractContractMkdirTest;
2323
import org.apache.hadoop.fs.contract.AbstractFSContract;
2424

25-
import static org.apache.hadoop.fs.s3a.Constants.FS_S3A_CREATE_PERFORMANCE;
26-
import static org.apache.hadoop.fs.s3a.Constants.FS_S3A_PERFORMANCE_FLAGS;
27-
import static org.apache.hadoop.fs.s3a.S3ATestUtils.removeBaseAndBucketOverrides;
25+
import static org.apache.hadoop.fs.s3a.S3ATestUtils.setPerformanceFlags;
2826

2927
/**
3028
* Test dir operations on S3A.
@@ -33,13 +31,9 @@ public class ITestS3AContractMkdir extends AbstractContractMkdirTest {
3331

3432
@Override
3533
protected Configuration createConfiguration() {
36-
Configuration conf = super.createConfiguration();
37-
removeBaseAndBucketOverrides(
38-
conf,
39-
FS_S3A_CREATE_PERFORMANCE,
40-
FS_S3A_PERFORMANCE_FLAGS);
41-
conf.set(FS_S3A_PERFORMANCE_FLAGS, "");
42-
return conf;
34+
return setPerformanceFlags(
35+
super.createConfiguration(),
36+
"");
4337
}
4438

4539
@Override

hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/contract/s3a/ITestS3AContractMkdirWithCreatePerf.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,7 @@
2929

3030
import static org.apache.hadoop.fs.contract.ContractTestUtils.createFile;
3131
import static org.apache.hadoop.fs.contract.ContractTestUtils.dataset;
32-
import static org.apache.hadoop.fs.s3a.Constants.FS_S3A_CREATE_PERFORMANCE;
33-
import static org.apache.hadoop.fs.s3a.Constants.FS_S3A_PERFORMANCE_FLAGS;
34-
import static org.apache.hadoop.fs.s3a.S3ATestUtils.removeBaseAndBucketOverrides;
32+
import static org.apache.hadoop.fs.s3a.S3ATestUtils.setPerformanceFlags;
3533

3634
/**
3735
* Test mkdir operations on S3A with create performance mode.
@@ -40,14 +38,9 @@ public class ITestS3AContractMkdirWithCreatePerf extends AbstractContractMkdirTe
4038

4139
@Override
4240
protected Configuration createConfiguration() {
43-
Configuration conf = super.createConfiguration();
44-
removeBaseAndBucketOverrides(
45-
conf,
46-
FS_S3A_CREATE_PERFORMANCE,
47-
FS_S3A_PERFORMANCE_FLAGS);
48-
conf.setStrings(FS_S3A_PERFORMANCE_FLAGS,
41+
return setPerformanceFlags(
42+
super.createConfiguration(),
4943
"create,mkdir");
50-
return conf;
5144
}
5245

5346
@Override

hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3AFSMainOperations.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
import static org.apache.hadoop.fs.s3a.S3ATestUtils.createTestPath;
3333
import static org.apache.hadoop.fs.s3a.S3ATestUtils.isCreatePerformanceEnabled;
34+
import static org.apache.hadoop.fs.s3a.S3ATestUtils.setPerformanceFlags;
3435

3536
/**
3637
* S3A Test suite for the FSMainOperationsBaseTest tests.
@@ -46,7 +47,10 @@ public ITestS3AFSMainOperations() {
4647

4748
@Override
4849
protected FileSystem createFileSystem() throws Exception {
49-
contract = new S3AContract(new Configuration());
50+
Configuration conf = setPerformanceFlags(
51+
new Configuration(),
52+
"");
53+
contract = new S3AContract(conf);
5054
contract.init();
5155
return contract.getTestFileSystem();
5256
}

hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3AFileOperationCost.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,7 @@
4040

4141

4242
import static org.apache.hadoop.fs.contract.ContractTestUtils.*;
43-
import static org.apache.hadoop.fs.s3a.Constants.FS_S3A_CREATE_PERFORMANCE;
44-
import static org.apache.hadoop.fs.s3a.Constants.FS_S3A_PERFORMANCE_FLAGS;
45-
import static org.apache.hadoop.fs.s3a.S3ATestUtils.removeBaseAndBucketOverrides;
43+
import static org.apache.hadoop.fs.s3a.S3ATestUtils.setPerformanceFlags;
4644
import static org.apache.hadoop.fs.s3a.Statistic.*;
4745
import static org.apache.hadoop.fs.s3a.performance.OperationCost.*;
4846
import static org.apache.hadoop.test.GenericTestUtils.getTestDir;
@@ -80,12 +78,9 @@ public ITestS3AFileOperationCost(
8078

8179
@Override
8280
public Configuration createConfiguration() {
83-
final Configuration conf = super.createConfiguration();
84-
removeBaseAndBucketOverrides(conf,
85-
FS_S3A_CREATE_PERFORMANCE,
86-
FS_S3A_PERFORMANCE_FLAGS);
87-
conf.setBoolean(FS_S3A_CREATE_PERFORMANCE, isKeepingMarkers());
88-
return conf;
81+
return setPerformanceFlags(
82+
super.createConfiguration(),
83+
isKeepingMarkers() ? "create" : "");
8984
}
9085

9186
/**

hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3AFileSystemContract.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535

3636
import static org.apache.hadoop.fs.contract.ContractTestUtils.skip;
3737
import static org.apache.hadoop.fs.s3a.S3ATestUtils.isCreatePerformanceEnabled;
38+
import static org.apache.hadoop.fs.s3a.S3ATestUtils.setPerformanceFlags;
3839
import static org.apache.hadoop.test.LambdaTestUtils.intercept;
3940
import static org.junit.Assume.*;
4041
import static org.junit.Assert.*;
@@ -65,7 +66,9 @@ protected int getGlobalTimeout() {
6566
@Before
6667
public void setUp() throws Exception {
6768
nameThread();
68-
Configuration conf = new Configuration();
69+
Configuration conf = setPerformanceFlags(
70+
new Configuration(),
71+
"");
6972

7073
fs = S3ATestUtils.createTestFileSystem(conf);
7174
assumeNotNull(fs);

hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/S3ATestUtils.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1127,6 +1127,25 @@ public static void assumeStoreAwsHosted(final FileSystem fs) {
11271127
.getTrimmed(ENDPOINT, DEFAULT_ENDPOINT)));
11281128
}
11291129

1130+
/**
1131+
* Modify the config by setting the performance flags and return the modified config.
1132+
*
1133+
* @param conf The configuration object.
1134+
* @param flagStr The performance flag string.
1135+
* @return The modified configuration object.
1136+
*/
1137+
public static Configuration setPerformanceFlags(final Configuration conf,
1138+
final String flagStr) {
1139+
removeBaseAndBucketOverrides(
1140+
conf,
1141+
FS_S3A_CREATE_PERFORMANCE,
1142+
FS_S3A_PERFORMANCE_FLAGS);
1143+
if (flagStr != null) {
1144+
conf.set(FS_S3A_PERFORMANCE_FLAGS, flagStr);
1145+
}
1146+
return conf;
1147+
}
1148+
11301149
/**
11311150
* Helper class to do diffs of metrics.
11321151
*/

hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/fileContext/ITestS3AFileContextCreateMkdir.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,7 @@
1818
import org.apache.hadoop.fs.s3a.S3ATestUtils;
1919
import org.junit.Before;
2020

21-
import static org.apache.hadoop.fs.s3a.Constants.FS_S3A_CREATE_PERFORMANCE;
22-
import static org.apache.hadoop.fs.s3a.Constants.FS_S3A_PERFORMANCE_FLAGS;
23-
import static org.apache.hadoop.fs.s3a.S3ATestUtils.removeBaseAndBucketOverrides;
21+
import static org.apache.hadoop.fs.s3a.S3ATestUtils.setPerformanceFlags;
2422

2523
/**
2624
* Extends FileContextCreateMkdirBaseTest for a S3a FileContext.
@@ -30,11 +28,9 @@ public class ITestS3AFileContextCreateMkdir
3028

3129
@Before
3230
public void setUp() throws Exception {
33-
Configuration conf = new Configuration();
34-
removeBaseAndBucketOverrides(
35-
conf,
36-
FS_S3A_CREATE_PERFORMANCE,
37-
FS_S3A_PERFORMANCE_FLAGS);
31+
Configuration conf = setPerformanceFlags(
32+
new Configuration(),
33+
null);
3834
fc = S3ATestUtils.createTestFileContext(conf);
3935
super.setUp();
4036
}

hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/fileContext/ITestS3AFileContextCreateMkdirCreatePerf.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@
2020
import org.apache.hadoop.fs.FileContextCreateMkdirBaseTest;
2121
import org.apache.hadoop.fs.s3a.S3ATestUtils;
2222

23-
import static org.apache.hadoop.fs.s3a.Constants.FS_S3A_CREATE_PERFORMANCE;
24-
import static org.apache.hadoop.fs.s3a.Constants.FS_S3A_PERFORMANCE_FLAGS;
25-
import static org.apache.hadoop.fs.s3a.S3ATestUtils.removeBaseAndBucketOverrides;
23+
import static org.apache.hadoop.fs.s3a.S3ATestUtils.setPerformanceFlags;
2624
import static org.apache.hadoop.test.LambdaTestUtils.intercept;
2725

2826
/**
@@ -34,12 +32,8 @@ public class ITestS3AFileContextCreateMkdirCreatePerf
3432

3533
@Before
3634
public void setUp() throws Exception {
37-
Configuration conf = new Configuration();
38-
removeBaseAndBucketOverrides(
39-
conf,
40-
FS_S3A_CREATE_PERFORMANCE,
41-
FS_S3A_PERFORMANCE_FLAGS);
42-
conf.setStrings(FS_S3A_PERFORMANCE_FLAGS,
35+
Configuration conf = setPerformanceFlags(
36+
new Configuration(),
4337
"mkdir");
4438
fc = S3ATestUtils.createTestFileContext(conf);
4539
super.setUp();

hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/fileContext/ITestS3AFileContextMainOperations.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
import org.apache.hadoop.fs.Path;
2828
import org.apache.hadoop.fs.s3a.S3ATestUtils;
2929

30+
import static org.apache.hadoop.fs.s3a.S3ATestUtils.setPerformanceFlags;
31+
3032
/**
3133
* S3A implementation of FileContextMainOperationsBaseTest.
3234
*/
@@ -36,7 +38,10 @@ public class ITestS3AFileContextMainOperations
3638

3739
@Before
3840
public void setUp() throws IOException, Exception {
39-
Configuration conf = new Configuration();
41+
Configuration conf = setPerformanceFlags(
42+
new Configuration(),
43+
"");
44+
4045
fc = S3ATestUtils.createTestFileContext(conf);
4146
super.setUp();
4247
}

0 commit comments

Comments
 (0)