Skip to content

Commit 8981b5c

Browse files
committed
Improve handling of unreadable test files
1 parent d2b093b commit 8981b5c

File tree

5 files changed

+41
-14
lines changed

5 files changed

+41
-14
lines changed

src/main/java/de/donnerbart/split/TestLoader.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -117,23 +117,24 @@ public TestLoader(
117117
Files.walkFileTree(rootPath, new SimpleFileVisitor<>() {
118118
@Override
119119
public @NotNull FileVisitResult visitFile(
120-
final @Nullable Path path,
120+
final @NotNull Path path,
121121
final @NotNull BasicFileAttributes attributes) {
122-
if (path != null) {
123-
final var candidate = path.normalize();
124-
if (includeMatcher.matches(candidate)) {
125-
if (excludeMatcher.matches(candidate)) {
126-
LOG.debug("Excluding test file {}", candidate);
127-
} else {
128-
files.add(candidate);
129-
}
122+
final var candidate = path.normalize();
123+
if (includeMatcher.matches(candidate)) {
124+
if (excludeMatcher.matches(candidate)) {
125+
LOG.debug("Excluding test file {}", candidate);
126+
} else if (!Files.isReadable(candidate)) {
127+
LOG.debug("Ignoring unreadable file {}", candidate);
128+
} else {
129+
files.add(candidate);
130130
}
131131
}
132132
return FileVisitResult.CONTINUE;
133133
}
134134

135135
@Override
136-
public @NotNull FileVisitResult visitFileFailed(final @Nullable Path file, final @NotNull IOException e) {
136+
public @NotNull FileVisitResult visitFileFailed(final @NotNull Path path, final @NotNull IOException e) {
137+
LOG.debug("Ignoring unreadable path {}", path.normalize());
137138
return FileVisitResult.CONTINUE;
138139
}
139140
});

src/test/java/de/donnerbart/split/TestLoaderTest.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,15 @@ void setUp() throws Exception {
3838
.resolve("de")
3939
.resolve("donnerbart")
4040
.resolve("example");
41-
Files.createDirectories(projectFolder);
41+
final var unreadableFolder = projectFolder.resolve("unreadable");
42+
Files.createDirectories(unreadableFolder);
43+
// unreadable tests
44+
copyResourceToTarget(projectFolder, "tests/UnreadableTest.java", "UnreadableTest.java", Set.of());
45+
copyResourceToTarget(unreadableFolder,
46+
"tests/UnreadableNestedTest.java",
47+
"UnreadableNestedTest.java",
48+
PERMISSIONS);
49+
Files.setPosixFilePermissions(unreadableFolder, Set.of());
4250
// ignored tests
4351
copyResourceToTarget(projectFolder, "tests/AbstractTest.java", "AbstractTest.java", PERMISSIONS);
4452
copyResourceToTarget(projectFolder, "tests/BaseTest.java", "BaseTest.java", PERMISSIONS);

src/test/java/de/donnerbart/split/TestUtil.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@ private TestUtil() {
3232
}
3333

3434
Files.copy(Path.of(resource.toURI()), path);
35-
if (!permissions.isEmpty()) {
36-
Files.setPosixFilePermissions(path, permissions);
37-
}
35+
Files.setPosixFilePermissions(path, permissions);
3836
return path.toAbsolutePath();
3937
} catch (final Exception e) {
4038
throw new AssertionError("Could not copy resource file to target", e);
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package de.donnerbart.example.unreadable;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
class UnreadableNestedTest {
6+
7+
@Test
8+
void testUnreadableMethod() {
9+
}
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package de.donnerbart.example;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
class UnreadableTest {
6+
7+
@Test
8+
void testUnreadableMethod() {
9+
}
10+
}

0 commit comments

Comments
 (0)