Add tests for SAM conversions

Add tests for KT-45191 [JPS] Marking method as "default" in Java SAM interface doesn't affect dependencies, which was fixed in intlellij(212): cbad0d91 support kotlin-generated lambda usage

#KT-45191 Fixed
This commit is contained in:
Aleksei.Cherepanov
2021-04-16 20:51:23 +03:00
parent 81a5ae7780
commit b5ef6c9316
10 changed files with 112 additions and 0 deletions
@@ -1800,6 +1800,11 @@ public class IncrementalJvmJpsTestGenerated extends AbstractIncrementalJvmJpsTes
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/samConversions"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
}
@TestMetadata("methodAddDefault")
public void testMethodAddDefault() throws Exception {
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/samConversions/methodAddDefault/");
}
@TestMetadata("methodAdded")
public void testMethodAdded() throws Exception {
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/samConversions/methodAdded/");
@@ -1820,6 +1825,19 @@ public class IncrementalJvmJpsTestGenerated extends AbstractIncrementalJvmJpsTes
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/samConversions/methodSignatureChangedSamAdapter/");
}
@TestMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/samConversions/methodAddDefault")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class MethodAddDefault extends AbstractIncrementalJvmJpsTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath);
}
public void testAllFilesPresentInMethodAddDefault() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/samConversions/methodAddDefault"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
}
}
@TestMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/samConversions/methodAdded")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@@ -0,0 +1,3 @@
public interface SamInterface {
void run();
}
@@ -0,0 +1,3 @@
public interface SamInterface {
default void run() {}
}
@@ -0,0 +1,26 @@
================ Step #1 =================
Cleaning output files:
out/production/module/SamInterface.class
End of files
Exit code: NOTHING_DONE
------------------------------------------
Compiling files:
src/SamInterface.java
End of files
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/UsageWithFunctionExpressionKt$sam$SamInterface$0.class
out/production/module/UsageWithFunctionExpressionKt$usageWithFunctionExpression$a$1.class
out/production/module/UsageWithFunctionExpressionKt.class
out/production/module/UsageWithFunctionLiteralKt.class
End of files
Compiling files:
src/usageWithFunctionExpression.kt
src/usageWithFunctionLiteral.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Interface SamInterface does not have constructors
Interface SamInterface does not have constructors
@@ -0,0 +1,4 @@
fun usageWithFunctionExpression() {
val a = { println("Hi!") }
SamInterface(a)
}
@@ -0,0 +1,3 @@
fun usageWithFunctionLiteral() {
SamInterface { println("Hi!") }
}