diff --git a/pitest-entry/pom.xml b/pitest-entry/pom.xml index a7f2e2293..18ad37129 100644 --- a/pitest-entry/pom.xml +++ b/pitest-entry/pom.xml @@ -176,7 +176,23 @@ ${hamcrest.version} test - + + + + org.jetbrains.kotlinx + kotlinx-coroutines-core + 1.8.1 + pom + runtime + + + + org.jetbrains.kotlin + kotlin-stdlib + 2.0.20 + + + diff --git a/pitest-entry/src/main/resources/functional_interfaces.txt b/pitest-entry/src/main/resources/functional_interfaces.txt index 4240ce000..25eee8bf9 100644 --- a/pitest-entry/src/main/resources/functional_interfaces.txt +++ b/pitest-entry/src/main/resources/functional_interfaces.txt @@ -130,4 +130,29 @@ com/google/common/util/concurrent/ClosingFuture$Combiner4$AsyncClosingFunction4 com/google/common/util/concurrent/ClosingFuture$Combiner4$ClosingFunction4 com/google/common/util/concurrent/ClosingFuture$Combiner5$AsyncClosingFunction5 com/google/common/util/concurrent/ClosingFuture$Combiner5$ClosingFunction5 -com/google/common/util/concurrent/ClosingFuture$ValueAndCloserConsumer \ No newline at end of file +com/google/common/util/concurrent/ClosingFuture$ValueAndCloserConsumer +kotlin/Function +kotlin/jvm/functions/Function0 +kotlin/jvm/functions/Function1 +kotlin/jvm/functions/Function10 +kotlin/jvm/functions/Function11 +kotlin/jvm/functions/Function12 +kotlin/jvm/functions/Function13 +kotlin/jvm/functions/Function14 +kotlin/jvm/functions/Function15 +kotlin/jvm/functions/Function16 +kotlin/jvm/functions/Function17 +kotlin/jvm/functions/Function18 +kotlin/jvm/functions/Function19 +kotlin/jvm/functions/Function2 +kotlin/jvm/functions/Function20 +kotlin/jvm/functions/Function21 +kotlin/jvm/functions/Function22 +kotlin/jvm/functions/Function3 +kotlin/jvm/functions/Function4 +kotlin/jvm/functions/Function5 +kotlin/jvm/functions/Function6 +kotlin/jvm/functions/Function7 +kotlin/jvm/functions/Function8 +kotlin/jvm/functions/Function9 +kotlin/jvm/functions/FunctionN diff --git a/pitest-entry/src/test/java/org/pitest/mutationtest/build/intercept/staticinitializers/FunctionalInterfaceScannerTest.java b/pitest-entry/src/test/java/org/pitest/mutationtest/build/intercept/staticinitializers/FunctionalInterfaceScannerTest.java index aef14f206..b2af27cf4 100644 --- a/pitest-entry/src/test/java/org/pitest/mutationtest/build/intercept/staticinitializers/FunctionalInterfaceScannerTest.java +++ b/pitest-entry/src/test/java/org/pitest/mutationtest/build/intercept/staticinitializers/FunctionalInterfaceScannerTest.java @@ -3,6 +3,7 @@ import org.junit.Test; import org.pitest.bytecode.analysis.ClassTree; import org.pitest.classinfo.ClassByteArraySource; +import org.pitest.classpath.ClassPath; import org.pitest.classpath.ClassloaderByteArraySource; import org.pitest.classpath.CodeSource; import org.pitest.mutationtest.FixedCodeSource; @@ -10,7 +11,9 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.util.List; import java.util.function.Function; +import java.util.stream.Collectors; import static java.util.Arrays.asList; import static org.assertj.core.api.Assertions.assertThat; @@ -31,7 +34,7 @@ public void recognisesFunctionalInterfaces() { } - /* + @Test public void wholeClassPath() throws Exception { ClassPath cp = new ClassPath(); @@ -39,14 +42,17 @@ public void wholeClassPath() throws Exception { .map(n -> source.getBytes(n)) .map(b -> ClassTree.fromBytes(b.get())) .filter(ClassTree::isInterface) - .flatMap(t -> underTest.apply(codeSourceFor(t)).stream()) + // .flatMap(t -> underTest.apply(codeSourceFor(t)).stream()) + .filter(c -> c.name().getNameWithoutPackage().asInternalName().startsWith("Consume")) + .map(c -> c.name().asInternalName()) + .distinct() .collect(Collectors.toList()); System.out.println(classes.stream() .collect(Collectors.joining("\n"))); } -*/ + /* // not a test and only works with java 9+