Skip to content

Commit 90a208d

Browse files
authored
Merge pull request #1496 from hcoles/feature/check_non_jvm_lang_dirs
Feature/check non jvm lang dirs
2 parents 95163c1 + db6c804 commit 90a208d

2 files changed

Lines changed: 25 additions & 4 deletions

File tree

pitest-entry/src/main/java/org/pitest/mutationtest/build/intercept/RegionInterceptor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@ public void begin(ClassTree clazz) {
3636
@Override
3737
public Collection<MutationDetails> intercept(
3838
Collection<MutationDetails> mutations, Mutater m) {
39+
var predicate = buildPredicate().negate();
3940
return mutations.stream()
40-
.filter(buildPredicate().negate())
41+
.filter(predicate)
4142
.collect(Collectors.toList());
4243
}
4344

pitest-maven/src/main/java/org/pitest/maven/NonEmptyProjectCheck.java

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,40 @@
22

33
import org.apache.maven.project.MavenProject;
44

5+
import java.io.File;
56
import java.io.IOException;
67
import java.nio.file.Files;
78
import java.nio.file.Path;
9+
import java.util.ArrayList;
10+
import java.util.List;
811
import java.util.function.Predicate;
912

1013
public class NonEmptyProjectCheck implements Predicate<MavenProject> {
1114

1215
@SuppressWarnings("unchecked")
1316
@Override
1417
public boolean test(MavenProject project) {
15-
return project.getTestCompileSourceRoots().stream().anyMatch(this::exists)
16-
&& project.getCompileSourceRoots().stream().anyMatch(this::exists);
18+
var baseDir = project.getBasedir() != null ? project.getBasedir() : new File("");
19+
return augmentTests(baseDir, project.getTestCompileSourceRoots()).stream().anyMatch(this::exists)
20+
&& augmentMain(baseDir, project.getCompileSourceRoots()).stream().anyMatch(this::exists);
1721
}
18-
22+
23+
// maven projects for other jvm languages are often not properly configured
24+
// and don't declare their source directories
25+
private List<String> augmentTests(File basedir, List<String> existing) {
26+
var groovy = basedir.toPath().resolve("src/test/groovy");
27+
var updated = new ArrayList<>(existing);
28+
updated.add(groovy.toAbsolutePath().toString());
29+
return updated;
30+
}
31+
32+
private List<String> augmentMain(File basedir, List<String> existing) {
33+
var groovy = basedir.toPath().resolve("src/main/groovy");
34+
var updated = new ArrayList<>(existing);
35+
updated.add(groovy.toAbsolutePath().toString());
36+
return updated;
37+
}
38+
1939
private boolean exists(String root) {
2040
var p = Path.of(root);
2141
try {

0 commit comments

Comments
 (0)