From 115c4b78c045e199586424b6fbf5c5aa3821e8b1 Mon Sep 17 00:00:00 2001 From: Michael Bogdanov Date: Sat, 18 Apr 2015 12:11:46 +0300 Subject: [PATCH] Added sam test on java8 interface with default method --- .../BlackBoxWithJava8CodegenTestGenerated.java | 6 ++++++ .../samOnInterfaceWithDefaultMethod/JavaCall.java | 5 +++++ .../samOnInterfaceWithDefaultMethod/Test.java | 12 ++++++++++++ .../samOnInterfaceWithDefaultMethod/sam.kt | 3 +++ .../generated/AbstractBlackBoxCodegenTest.java | 3 +-- 5 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 compiler/testData/codegen/java8/boxWithJava/samOnInterfaceWithDefaultMethod/JavaCall.java create mode 100644 compiler/testData/codegen/java8/boxWithJava/samOnInterfaceWithDefaultMethod/Test.java create mode 100644 compiler/testData/codegen/java8/boxWithJava/samOnInterfaceWithDefaultMethod/sam.kt diff --git a/compiler/java8-tests/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJava8CodegenTestGenerated.java b/compiler/java8-tests/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJava8CodegenTestGenerated.java index dd10429da4f..523e1f8ee8a 100644 --- a/compiler/java8-tests/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJava8CodegenTestGenerated.java +++ b/compiler/java8-tests/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJava8CodegenTestGenerated.java @@ -47,4 +47,10 @@ public class BlackBoxWithJava8CodegenTestGenerated extends AbstractBlackBoxCodeg doTestWithJava(fileName); } + @TestMetadata("samOnInterfaceWithDefaultMethod") + public void testSamOnInterfaceWithDefaultMethod() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/java8/boxWithJava/samOnInterfaceWithDefaultMethod/"); + doTestWithJava(fileName); + } + } diff --git a/compiler/testData/codegen/java8/boxWithJava/samOnInterfaceWithDefaultMethod/JavaCall.java b/compiler/testData/codegen/java8/boxWithJava/samOnInterfaceWithDefaultMethod/JavaCall.java new file mode 100644 index 00000000000..44f7df52eff --- /dev/null +++ b/compiler/testData/codegen/java8/boxWithJava/samOnInterfaceWithDefaultMethod/JavaCall.java @@ -0,0 +1,5 @@ +class JavaCall { + String call(Test test) { + return test.call(); + } +} \ No newline at end of file diff --git a/compiler/testData/codegen/java8/boxWithJava/samOnInterfaceWithDefaultMethod/Test.java b/compiler/testData/codegen/java8/boxWithJava/samOnInterfaceWithDefaultMethod/Test.java new file mode 100644 index 00000000000..ae22869d2e4 --- /dev/null +++ b/compiler/testData/codegen/java8/boxWithJava/samOnInterfaceWithDefaultMethod/Test.java @@ -0,0 +1,12 @@ +interface Test { + + String call(); + + default String test() { + return "K"; + } + + static String testStatic() { + return "K"; + } +} diff --git a/compiler/testData/codegen/java8/boxWithJava/samOnInterfaceWithDefaultMethod/sam.kt b/compiler/testData/codegen/java8/boxWithJava/samOnInterfaceWithDefaultMethod/sam.kt new file mode 100644 index 00000000000..bcfeefa593b --- /dev/null +++ b/compiler/testData/codegen/java8/boxWithJava/samOnInterfaceWithDefaultMethod/sam.kt @@ -0,0 +1,3 @@ +fun box(): String { + return JavaCall().call {"OK"} +} diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/generated/AbstractBlackBoxCodegenTest.java b/compiler/tests/org/jetbrains/kotlin/codegen/generated/AbstractBlackBoxCodegenTest.java index 864f53c196e..e17efabab17 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/generated/AbstractBlackBoxCodegenTest.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/generated/AbstractBlackBoxCodegenTest.java @@ -153,8 +153,7 @@ public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase { File kotlinOut = JetTestUtils.tmpDir(toString()); OutputUtilsPackage.writeAllTo(classFileFactory, kotlinOut); - // TODO: support several Java sources - File javaOut = compileJava(KotlinPackage.single(javaFilePaths), kotlinOut.getPath()); + File javaOut = compileJava(javaFilePaths, kotlinOut.getPath()); // Add javac output to classpath so that the created class loader can find generated Java classes addJvmClasspathRoot(configuration, javaOut);