Skip to content

Commit f3fd088

Browse files
muthu90techkezhuw
authored andcommitted
ZOOKEEPER-4780: Delegate temp directory creation to Junit in tests.
Use Junit `@TempDir` annotation to manage temp directory for tests. Reviewers: ctubbsii, eolivelli Author: muthu90tech Closes apache#2100 from muthu90tech/ZOOKEEPER-4780 (cherry-picked from e10bf86)
1 parent 54fde80 commit f3fd088

29 files changed

+216
-309
lines changed

zookeeper-server/src/test/java/org/apache/zookeeper/client/ZKClientConfigTest.java

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,21 +38,12 @@
3838
import java.util.Properties;
3939
import org.apache.zookeeper.common.ZKConfig;
4040
import org.apache.zookeeper.server.quorum.QuorumPeerConfig.ConfigException;
41-
import org.junit.jupiter.api.BeforeAll;
4241
import org.junit.jupiter.api.Test;
4342
import org.junit.jupiter.api.Timeout;
43+
import org.junit.jupiter.api.io.TempDir;
4444

4545
public class ZKClientConfigTest {
4646

47-
private static final File testData = new File(System.getProperty("test.data.dir", "src/test/resources/data"));
48-
49-
@BeforeAll
50-
public static void init() {
51-
if (!testData.exists()) {
52-
testData.mkdirs();
53-
}
54-
}
55-
5647
@Test
5748
@Timeout(value = 10)
5849
public void testDefaultConfiguration() {
@@ -109,9 +100,8 @@ public void testSystemPropertyValue() {
109100

110101
@Test
111102
@Timeout(value = 10)
112-
public void testReadConfigurationFile() throws IOException, ConfigException {
113-
File file = File.createTempFile("clientConfig", ".conf", testData);
114-
file.deleteOnExit();
103+
public void testReadConfigurationFile(@TempDir File testDataDir) throws IOException, ConfigException {
104+
File file = File.createTempFile("clientConfig", ".conf", testDataDir);
115105
Properties clientConfProp = new Properties();
116106
clientConfProp.setProperty(ENABLE_CLIENT_SASL_KEY, "true");
117107
clientConfProp.setProperty(ZK_SASL_CLIENT_USERNAME, "ZK");
@@ -132,10 +122,6 @@ public void testReadConfigurationFile() throws IOException, ConfigException {
132122
assertEquals(conf.getProperty(LOGIN_CONTEXT_NAME_KEY), "MyClient");
133123
assertEquals(conf.getProperty(ZOOKEEPER_SERVER_REALM), "HADOOP.COM");
134124
assertEquals(conf.getProperty("dummyProperty"), "dummyValue");
135-
136-
// try to delete it now as we have done with the created file, why to
137-
// wait for deleteOnExit() deletion
138-
file.delete();
139125
}
140126

141127
@Test

zookeeper-server/src/test/java/org/apache/zookeeper/common/BaseX509ParameterizedTestCase.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,16 @@
1919
package org.apache.zookeeper.common;
2020

2121
import java.io.File;
22-
import java.io.IOException;
2322
import java.security.Security;
2423
import java.util.ArrayList;
2524
import java.util.HashMap;
2625
import java.util.Map;
2726
import java.util.stream.Stream;
28-
import org.apache.commons.io.FileUtils;
2927
import org.apache.zookeeper.ZKTestCase;
30-
import org.apache.zookeeper.test.ClientBase;
3128
import org.bouncycastle.jce.provider.BouncyCastleProvider;
3229
import org.junit.jupiter.api.AfterAll;
3330
import org.junit.jupiter.api.BeforeAll;
31+
import org.junit.jupiter.api.io.TempDir;
3432
import org.junit.jupiter.params.provider.Arguments;
3533

3634
/**
@@ -70,6 +68,7 @@ public static Stream<Arguments> data() {
7068
* caching makes all test cases after the first one for a given parameter combination complete almost instantly.
7169
*/
7270
protected static Map<Integer, X509TestContext> cachedTestContexts;
71+
@TempDir
7372
protected static File tempDir;
7473

7574
protected X509TestContext x509TestContext;
@@ -78,19 +77,13 @@ public static Stream<Arguments> data() {
7877
public static void setUpBaseClass() throws Exception {
7978
Security.addProvider(new BouncyCastleProvider());
8079
cachedTestContexts = new HashMap<>();
81-
tempDir = ClientBase.createEmptyTestDir();
8280
}
8381

8482
@AfterAll
8583
public static void cleanUpBaseClass() {
8684
Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME);
8785
cachedTestContexts.clear();
8886
cachedTestContexts = null;
89-
try {
90-
FileUtils.deleteDirectory(tempDir);
91-
} catch (IOException e) {
92-
// ignore
93-
}
9487
}
9588

9689
/**

zookeeper-server/src/test/java/org/apache/zookeeper/common/FileChangeWatcherTest.java

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,36 +31,25 @@
3131
import java.util.concurrent.atomic.AtomicInteger;
3232
import org.apache.commons.io.FileUtils;
3333
import org.apache.zookeeper.ZKTestCase;
34-
import org.apache.zookeeper.test.ClientBase;
35-
import org.junit.jupiter.api.AfterAll;
3634
import org.junit.jupiter.api.BeforeAll;
3735
import org.junit.jupiter.api.Test;
36+
import org.junit.jupiter.api.io.TempDir;
3837
import org.slf4j.Logger;
3938
import org.slf4j.LoggerFactory;
4039

4140
public class FileChangeWatcherTest extends ZKTestCase {
4241

43-
private static File tempDir;
44-
private static File tempFile;
42+
@TempDir
43+
static File tempDir;
44+
static File tempFile;
4545

4646
private static final Logger LOG = LoggerFactory.getLogger(FileChangeWatcherTest.class);
4747

4848
private static final long FS_TIMEOUT = 30000L;
4949

5050
@BeforeAll
5151
public static void createTempFile() throws IOException {
52-
tempDir = ClientBase.createEmptyTestDir();
5352
tempFile = File.createTempFile("zk_test_", "", tempDir);
54-
tempFile.deleteOnExit();
55-
}
56-
57-
@AfterAll
58-
public static void cleanupTempDir() {
59-
try {
60-
FileUtils.deleteDirectory(tempDir);
61-
} catch (IOException e) {
62-
// ignore
63-
}
6453
}
6554

6655
@Test

zookeeper-server/src/test/java/org/apache/zookeeper/common/SecretUtilsTest.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,20 @@
2121
import static org.junit.jupiter.api.Assertions.assertEquals;
2222
import static org.junit.jupiter.api.Assertions.assertThrows;
2323
import java.io.BufferedWriter;
24+
import java.io.File;
2425
import java.io.FileWriter;
2526
import java.io.IOException;
26-
import java.nio.file.Files;
2727
import java.nio.file.Path;
2828
import org.junit.Test;
29+
import org.junit.jupiter.api.io.TempDir;
2930
import org.junit.jupiter.params.ParameterizedTest;
3031
import org.junit.jupiter.params.provider.ValueSource;
3132

3233
public class SecretUtilsTest {
3334

35+
@TempDir
36+
static File tempDir;
37+
3438
@ParameterizedTest
3539
@ValueSource (strings = {"test secret", ""})
3640
public void testReadSecret(final String secretTxt) throws Exception {
@@ -58,13 +62,13 @@ public void testReadSecret_fileNotExist() {
5862
}
5963

6064
public static Path createSecretFile(final String secretTxt) throws IOException {
61-
final Path path = Files.createTempFile("test_", ".secrete");
65+
final File tempFile = File.createTempFile("test_", ".secrete", tempDir);
66+
final Path path = tempFile.toPath();
6267

6368
final BufferedWriter writer = new BufferedWriter(new FileWriter(path.toString()));
6469
writer.append(secretTxt);
6570
writer.close();
6671

67-
path.toFile().deleteOnExit();
6872
return path;
6973
}
7074
}

zookeeper-server/src/test/java/org/apache/zookeeper/server/CRCTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.apache.zookeeper.server.persistence.TxnLog.TxnIterator;
4545
import org.apache.zookeeper.test.ClientBase;
4646
import org.junit.jupiter.api.Test;
47+
import org.junit.jupiter.api.io.TempDir;
4748
import org.slf4j.Logger;
4849
import org.slf4j.LoggerFactory;
4950

@@ -102,8 +103,7 @@ private boolean getCheckSum(File snapFile) throws IOException {
102103
* @throws Exception
103104
*/
104105
@Test
105-
public void testChecksums() throws Exception {
106-
File tmpDir = ClientBase.createTmpDir();
106+
public void testChecksums(@TempDir File tmpDir) throws Exception {
107107
ClientBase.setupTestEnv();
108108
ZooKeeperServer zks = new ZooKeeperServer(tmpDir, tmpDir, 3000);
109109
SyncRequestProcessor.setSnapCount(150);

zookeeper-server/src/test/java/org/apache/zookeeper/server/ClientSSLReloadTest.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import org.junit.jupiter.api.AfterEach;
4444
import org.junit.jupiter.api.BeforeEach;
4545
import org.junit.jupiter.api.Test;
46+
import org.junit.jupiter.api.io.TempDir;
4647
import org.slf4j.Logger;
4748
import org.slf4j.LoggerFactory;
4849

@@ -52,8 +53,10 @@ public class ClientSSLReloadTest extends ZKTestCase {
5253
private X509TestContext x509TestContext1;
5354
private X509TestContext x509TestContext2;
5455

55-
private File dir1;
56-
private File dir2;
56+
@TempDir
57+
File dir1;
58+
@TempDir
59+
File dir2;
5760

5861
private File keyStoreFile1;
5962
private File trustStoreFile1;
@@ -64,9 +67,6 @@ public class ClientSSLReloadTest extends ZKTestCase {
6467
@BeforeEach
6568
public void setup() throws Exception {
6669

67-
dir1 = ClientBase.createEmptyTestDir();
68-
dir2 = ClientBase.createEmptyTestDir();
69-
7070
Security.addProvider(new BouncyCastleProvider());
7171

7272
x509TestContext1 = X509TestContext.newBuilder()
@@ -92,12 +92,6 @@ public void setup() throws Exception {
9292

9393
@AfterEach
9494
public void teardown() throws Exception {
95-
try {
96-
FileUtils.deleteDirectory(dir1);
97-
FileUtils.deleteDirectory(dir2);
98-
} catch (IOException e) {
99-
// ignore
100-
}
10195
Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME);
10296
}
10397

zookeeper-server/src/test/java/org/apache/zookeeper/server/DatadirCleanupManagerTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,23 @@
2424
import static org.junit.jupiter.api.Assertions.assertEquals;
2525
import java.io.File;
2626
import org.apache.zookeeper.ZKTestCase;
27-
import org.apache.zookeeper.test.ClientBase;
2827
import org.junit.jupiter.api.AfterEach;
2928
import org.junit.jupiter.api.BeforeEach;
3029
import org.junit.jupiter.api.Test;
30+
import org.junit.jupiter.api.io.TempDir;
3131

3232
public class DatadirCleanupManagerTest extends ZKTestCase {
3333

3434
private DatadirCleanupManager purgeMgr;
35+
@TempDir
36+
File tmpDir;
3537
private File snapDir;
3638
private File dataLogDir;
3739

3840
@BeforeEach
3941
public void setUp() throws Exception {
40-
File dataDir = ClientBase.createTmpDir();
41-
snapDir = dataDir;
42-
dataLogDir = dataDir;
42+
snapDir = tmpDir;
43+
dataLogDir = tmpDir;
4344
}
4445

4546
@Test

zookeeper-server/src/test/java/org/apache/zookeeper/server/PrepRequestProcessorTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
import org.junit.jupiter.api.AfterEach;
6363
import org.junit.jupiter.api.BeforeEach;
6464
import org.junit.jupiter.api.Test;
65+
import org.junit.jupiter.api.io.TempDir;
6566

6667

6768
public class PrepRequestProcessorTest extends ClientBase {
@@ -79,8 +80,7 @@ public class PrepRequestProcessorTest extends ClientBase {
7980
private boolean isStandaloneEnabledPreviously;
8081

8182
@BeforeEach
82-
public void setup() throws Exception {
83-
File tmpDir = ClientBase.createTmpDir();
83+
public void setup(@TempDir File tmpDir) throws Exception {
8484
ClientBase.setupTestEnv();
8585
zks = new ZooKeeperServer(tmpDir, tmpDir, 3000);
8686
SyncRequestProcessor.setSnapCount(100);

zookeeper-server/src/test/java/org/apache/zookeeper/server/ZooKeeperServerBeanTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@
2727
import org.apache.jute.Record;
2828
import org.apache.zookeeper.ZooDefs;
2929
import org.apache.zookeeper.server.persistence.FileTxnSnapLog;
30-
import org.apache.zookeeper.test.ClientBase;
3130
import org.apache.zookeeper.txn.SetDataTxn;
3231
import org.apache.zookeeper.txn.TxnHeader;
3332
import org.junit.jupiter.api.AfterEach;
3433
import org.junit.jupiter.api.BeforeEach;
3534
import org.junit.jupiter.api.Test;
35+
import org.junit.jupiter.api.io.TempDir;
3636

3737
public class ZooKeeperServerBeanTest {
3838

@@ -47,9 +47,8 @@ public void teardown() throws Exception {
4747
}
4848

4949
@Test
50-
public void testTxnLogElapsedSyncTime() throws IOException {
50+
public void testTxnLogElapsedSyncTime(@TempDir File tmpDir) throws IOException {
5151

52-
File tmpDir = ClientBase.createEmptyTestDir();
5352
FileTxnSnapLog fileTxnSnapLog = new FileTxnSnapLog(new File(tmpDir, "data"), new File(tmpDir, "data_txnlog"));
5453

5554
ZooKeeperServer zks = new ZooKeeperServer();

zookeeper-server/src/test/java/org/apache/zookeeper/server/ZooKeeperServerCreationTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
import java.io.File;
2222
import org.apache.zookeeper.proto.ConnectRequest;
2323
import org.apache.zookeeper.server.persistence.FileTxnSnapLog;
24-
import org.apache.zookeeper.test.ClientBase;
2524
import org.junit.jupiter.api.Test;
25+
import org.junit.jupiter.api.io.TempDir;
2626

2727
public class ZooKeeperServerCreationTest {
2828

@@ -31,8 +31,7 @@ public class ZooKeeperServerCreationTest {
3131
* that all needed fields are initialized properly, etc.
3232
*/
3333
@Test
34-
public void testDefaultConstructor() throws Exception {
35-
File tmpDir = ClientBase.createEmptyTestDir();
34+
public void testDefaultConstructor(@TempDir File tmpDir) throws Exception {
3635
FileTxnSnapLog fileTxnSnapLog = new FileTxnSnapLog(new File(tmpDir, "data"), new File(tmpDir, "data_txnlog"));
3736

3837
ZooKeeperServer zks = new ZooKeeperServer() {

0 commit comments

Comments
 (0)