Skip to content

Commit b1b734e

Browse files
committed
Clean more safely with JUnit rules.
1 parent b7d4f72 commit b1b734e

30 files changed

+381
-487
lines changed

log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicyTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,6 @@ public void testPolicy() throws Exception {
4949
final Configuration configuration = new DefaultConfiguration();
5050
final Path target = Paths.get(TARGET_FILE);
5151
final Path rolled = Paths.get(ROLLED_FILE);
52-
Files.deleteIfExists(target);
53-
Files.deleteIfExists(rolled);
5452
try (final InputStream is = new ByteArrayInputStream(TEST_DATA.getBytes("UTF-8"))) {
5553
Files.copy(is, target);
5654
}

log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RandomRollingAppenderOnStartupTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ public static Collection<Object[]> data() {
5454
}
5555

5656
@Rule
57-
public LoggerContextRule init;
57+
public LoggerContextRule loggerContextRule;
5858

5959
public RandomRollingAppenderOnStartupTest(final String configFile) {
60-
this.init = new LoggerContextRule(configFile);
60+
this.loggerContextRule = new LoggerContextRule(configFile);
6161
}
6262

6363
@Before
6464
public void setUp() throws Exception {
65-
this.logger = this.init.getLogger(RandomRollingAppenderOnStartupTest.class.getName());
65+
this.logger = this.loggerContextRule.getLogger(RandomRollingAppenderOnStartupTest.class.getName());
6666
}
6767

6868
@BeforeClass

log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderCronTest.java

Lines changed: 19 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,13 @@
1616
*/
1717
package org.apache.logging.log4j.core.appender.rolling;
1818

19-
import org.apache.logging.log4j.Logger;
20-
import org.apache.logging.log4j.core.appender.RollingFileAppender;
21-
import org.apache.logging.log4j.core.util.CronExpression;
22-
import org.apache.logging.log4j.junit.LoggerContextRule;
23-
import org.hamcrest.Matcher;
24-
import org.junit.Rule;
25-
import org.junit.Test;
26-
import org.junit.rules.ExternalResource;
27-
import org.junit.rules.RuleChain;
19+
import static org.apache.logging.log4j.hamcrest.Descriptors.that;
20+
import static org.apache.logging.log4j.hamcrest.FileMatchers.hasName;
21+
import static org.hamcrest.Matchers.endsWith;
22+
import static org.hamcrest.Matchers.hasItemInArray;
23+
import static org.junit.Assert.assertNotNull;
24+
import static org.junit.Assert.assertTrue;
25+
import static org.junit.Assert.fail;
2826

2927
import java.io.File;
3028
import java.io.FileOutputStream;
@@ -33,11 +31,14 @@
3331
import java.nio.file.Files;
3432
import java.nio.file.Path;
3533

36-
import static org.apache.logging.log4j.hamcrest.Descriptors.that;
37-
import static org.apache.logging.log4j.hamcrest.FileMatchers.hasName;
38-
import static org.hamcrest.Matchers.endsWith;
39-
import static org.hamcrest.Matchers.hasItemInArray;
40-
import static org.junit.Assert.*;
34+
import org.apache.logging.log4j.Logger;
35+
import org.apache.logging.log4j.core.appender.RollingFileAppender;
36+
import org.apache.logging.log4j.core.util.CronExpression;
37+
import org.apache.logging.log4j.junit.LoggerContextRule;
38+
import org.hamcrest.Matcher;
39+
import org.junit.Rule;
40+
import org.junit.Test;
41+
import org.junit.rules.RuleChain;
4142

4243
/**
4344
*
@@ -47,19 +48,14 @@ public class RollingAppenderCronTest {
4748
private static final String CONFIG = "log4j-rolling-cron.xml";
4849
private static final String DIR = "target/rolling-cron";
4950

50-
private final LoggerContextRule ctx = new LoggerContextRule(CONFIG);
51+
private final LoggerContextRule loggerContextRule = new LoggerContextRule(CONFIG);
5152

5253
@Rule
53-
public RuleChain chain = RuleChain.outerRule(new ExternalResource() {
54-
@Override
55-
protected void before() throws Throwable {
56-
deleteDir();
57-
}
58-
}).around(ctx);
54+
public RuleChain chain = loggerContextRule.withCleanFoldersRule(DIR);
5955

6056
@Test
6157
public void testAppender() throws Exception {
62-
final Logger logger = ctx.getLogger();
58+
final Logger logger = loggerContextRule.getLogger();
6359
logger.debug("This is test message number 1");
6460
Thread.sleep(2500);
6561
final File dir = new File(DIR);
@@ -90,7 +86,7 @@ public void testAppender() throws Exception {
9086
logger.debug("Adding new event {}", i);
9187
}
9288
Thread.sleep(1000);
93-
final RollingFileAppender app = (RollingFileAppender) ctx.getContext().getConfiguration().getAppender("RollingFile");
89+
final RollingFileAppender app = (RollingFileAppender) loggerContextRule.getContext().getConfiguration().getAppender("RollingFile");
9490
final TriggeringPolicy policy = app.getManager().getTriggeringPolicy();
9591
assertNotNull("No triggering policy", policy);
9692
assertTrue("Incorrect policy type", policy instanceof CronTriggeringPolicy);
@@ -99,14 +95,4 @@ public void testAppender() throws Exception {
9995

10096
}
10197

102-
private static void deleteDir() {
103-
final File dir = new File(DIR);
104-
if (dir.exists()) {
105-
final File[] files = dir.listFiles();
106-
for (final File file : files) {
107-
file.delete();
108-
}
109-
dir.delete();
110-
}
111-
}
11298
}

log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderCustomDeleteActionTest.java

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
*/
1717
package org.apache.logging.log4j.core.appender.rolling;
1818

19+
import static org.junit.Assert.assertTrue;
20+
import static org.junit.Assert.fail;
21+
1922
import java.io.File;
2023
import java.util.Arrays;
2124
import java.util.regex.Pattern;
@@ -24,11 +27,8 @@
2427
import org.apache.logging.log4j.junit.LoggerContextRule;
2528
import org.junit.Rule;
2629
import org.junit.Test;
27-
import org.junit.rules.ExternalResource;
2830
import org.junit.rules.RuleChain;
2931

30-
import static org.junit.Assert.*;
31-
3232
/**
3333
*
3434
*/
@@ -37,19 +37,14 @@ public class RollingAppenderCustomDeleteActionTest {
3737
private static final String CONFIG = "log4j-rolling-with-custom-delete.xml";
3838
private static final String DIR = "target/rolling-with-delete/test";
3939

40-
private final LoggerContextRule ctx = new LoggerContextRule(CONFIG);
40+
private final LoggerContextRule loggerContextRule = new LoggerContextRule(CONFIG);
4141

4242
@Rule
43-
public RuleChain chain = RuleChain.outerRule(new ExternalResource() {
44-
@Override
45-
protected void before() throws Throwable {
46-
deleteDir();
47-
}
48-
}).around(ctx);
43+
public RuleChain chain = loggerContextRule.withCleanFoldersRule(DIR);
4944

5045
@Test
5146
public void testAppender() throws Exception {
52-
final Logger logger = ctx.getLogger();
47+
final Logger logger = loggerContextRule.getLogger();
5348
// Trigger the rollover
5449
for (int i = 0; i < 10; ++i) {
5550
// 30 chars per message: each message triggers a rollover
@@ -80,17 +75,6 @@ public void testAppender() throws Exception {
8075
fail("No rollover files found");
8176
}
8277

83-
private static void deleteDir() {
84-
final File dir = new File(DIR);
85-
if (dir.exists()) {
86-
final File[] files = dir.listFiles();
87-
for (final File file : files) {
88-
file.delete();
89-
}
90-
dir.delete();
91-
}
92-
}
93-
9478
public static void main(final String[] args) {
9579
final Pattern p = Pattern.compile("test-.?[2,4,6,8,0]\\.log\\.gz");
9680
for (int i = 0; i < 16; i++) {

log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderDeleteAccumulatedCount1Test.java

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616
*/
1717
package org.apache.logging.log4j.core.appender.rolling;
1818

19+
import static org.junit.Assert.assertEquals;
20+
import static org.junit.Assert.assertTrue;
21+
import static org.junit.Assert.fail;
22+
1923
import java.io.BufferedWriter;
2024
import java.io.File;
2125
import java.io.IOException;
@@ -33,11 +37,8 @@
3337
import org.apache.logging.log4j.junit.LoggerContextRule;
3438
import org.junit.Rule;
3539
import org.junit.Test;
36-
import org.junit.rules.ExternalResource;
3740
import org.junit.rules.RuleChain;
3841

39-
import static org.junit.Assert.*;
40-
4142
/**
4243
* Tests that sibling conditions are invoked in configured order.
4344
* This does not work for properties configurations. Use nested conditions instead.
@@ -46,15 +47,10 @@ public class RollingAppenderDeleteAccumulatedCount1Test {
4647
private static final String CONFIG = "log4j-rolling-with-custom-delete-accum-count1.xml";
4748
private static final String DIR = "target/rolling-with-delete-accum-count1/test";
4849

49-
private final LoggerContextRule ctx = new LoggerContextRule(CONFIG);
50+
private final LoggerContextRule loggerContextRule = new LoggerContextRule(CONFIG);
5051

5152
@Rule
52-
public RuleChain chain = RuleChain.outerRule(new ExternalResource() {
53-
@Override
54-
protected void before() throws Throwable {
55-
deleteDir();
56-
}
57-
}).around(ctx);
53+
public RuleChain chain = loggerContextRule.withCleanFoldersRule(DIR);
5854

5955
@Test
6056
public void testAppender() throws Exception {
@@ -64,7 +60,7 @@ public void testAppender() throws Exception {
6460
final Path p4 = writeTextTo(DIR + "/my-4.log");
6561
final Path p5 = writeTextTo(DIR + "/my-5.log");
6662

67-
final Logger logger = ctx.getLogger();
63+
final Logger logger = loggerContextRule.getLogger();
6864
for (int i = 0; i < 10; ++i) {
6965
updateLastModified(p1, p2, p3, p4, p5); // make my-*.log files most recent
7066

@@ -107,15 +103,4 @@ private Path writeTextTo(final String location) throws IOException {
107103
}
108104
return path;
109105
}
110-
111-
private static void deleteDir() {
112-
final File dir = new File(DIR);
113-
if (dir.exists()) {
114-
final File[] files = dir.listFiles();
115-
for (final File file : files) {
116-
file.delete();
117-
}
118-
dir.delete();
119-
}
120-
}
121106
}

log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderDeleteAccumulatedCount2Test.java

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616
*/
1717
package org.apache.logging.log4j.core.appender.rolling;
1818

19+
import static org.junit.Assert.assertEquals;
20+
import static org.junit.Assert.assertTrue;
21+
import static org.junit.Assert.fail;
22+
1923
import java.io.BufferedWriter;
2024
import java.io.File;
2125
import java.io.IOException;
@@ -33,11 +37,8 @@
3337
import org.apache.logging.log4j.junit.LoggerContextRule;
3438
import org.junit.Rule;
3539
import org.junit.Test;
36-
import org.junit.rules.ExternalResource;
3740
import org.junit.rules.RuleChain;
3841

39-
import static org.junit.Assert.*;
40-
4142
/**
4243
* Tests that sibling conditions are invoked in configured order.
4344
* This does not work for properties configurations. Use nested conditions instead.
@@ -46,15 +47,10 @@ public class RollingAppenderDeleteAccumulatedCount2Test {
4647
private static final String CONFIG = "log4j-rolling-with-custom-delete-accum-count2.xml";
4748
private static final String DIR = "target/rolling-with-delete-accum-count2/test";
4849

49-
private final LoggerContextRule ctx = new LoggerContextRule(CONFIG);
50+
private final LoggerContextRule loggerContextRule = new LoggerContextRule(CONFIG);
5051

5152
@Rule
52-
public RuleChain chain = RuleChain.outerRule(new ExternalResource() {
53-
@Override
54-
protected void before() throws Throwable {
55-
deleteDir();
56-
}
57-
}).around(ctx);
53+
public RuleChain chain = loggerContextRule.withCleanFoldersRule(DIR);
5854

5955
@Test
6056
public void testAppender() throws Exception {
@@ -64,7 +60,7 @@ public void testAppender() throws Exception {
6460
final Path p4 = writeTextTo(DIR + "/my-4.log");
6561
final Path p5 = writeTextTo(DIR + "/my-5.log");
6662

67-
final Logger logger = ctx.getLogger();
63+
final Logger logger = loggerContextRule.getLogger();
6864
for (int i = 0; i < 10; ++i) {
6965
updateLastModified(p1, p2, p3, p4, p5); // make my-*.log files most recent
7066

@@ -108,15 +104,4 @@ private Path writeTextTo(final String location) throws IOException {
108104
}
109105
return path;
110106
}
111-
112-
private static void deleteDir() {
113-
final File dir = new File(DIR);
114-
if (dir.exists()) {
115-
final File[] files = dir.listFiles();
116-
for (final File file : files) {
117-
file.delete();
118-
}
119-
dir.delete();
120-
}
121-
}
122107
}

log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderDeleteAccumulatedSizeTest.java

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
*/
1717
package org.apache.logging.log4j.core.appender.rolling;
1818

19+
import static org.junit.Assert.assertEquals;
20+
import static org.junit.Assert.assertTrue;
21+
1922
import java.io.File;
2023
import java.util.Arrays;
2124

@@ -25,32 +28,24 @@
2528
import org.apache.logging.log4j.junit.LoggerContextRule;
2629
import org.junit.Rule;
2730
import org.junit.Test;
28-
import org.junit.rules.ExternalResource;
2931
import org.junit.rules.RuleChain;
3032

31-
import static org.junit.Assert.*;
32-
3333
/**
3434
*
3535
*/
3636
public class RollingAppenderDeleteAccumulatedSizeTest {
3737
private static final String CONFIG = "log4j-rolling-with-custom-delete-accum-size.xml";
3838
private static final String DIR = "target/rolling-with-delete-accum-size/test";
3939

40-
private final LoggerContextRule ctx = new LoggerContextRule(CONFIG);
40+
private final LoggerContextRule loggerContextRule = new LoggerContextRule(CONFIG);
4141

4242
@Rule
43-
public RuleChain chain = RuleChain.outerRule(new ExternalResource() {
44-
@Override
45-
protected void before() throws Throwable {
46-
deleteDir();
47-
}
48-
}).around(ctx);
43+
public RuleChain chain = loggerContextRule.withCleanFoldersRule(DIR);
4944

5045
@Test
5146
public void testAppender() throws Exception {
5247

53-
final Logger logger = ctx.getLogger();
48+
final Logger logger = loggerContextRule.getLogger();
5449
for (int i = 0; i < 10; ++i) {
5550
// 30 chars per message: each message triggers a rollover
5651
logger.debug("This is a test message number " + i); // 30 chars:
@@ -75,15 +70,4 @@ public void testAppender() throws Exception {
7570
}
7671
assertTrue("accumulatedSize=" + total, total <= 500);
7772
}
78-
79-
private static void deleteDir() {
80-
final File dir = new File(DIR);
81-
if (dir.exists()) {
82-
final File[] files = dir.listFiles();
83-
for (final File file : files) {
84-
file.delete();
85-
}
86-
dir.delete();
87-
}
88-
}
8973
}

0 commit comments

Comments
 (0)