From b4f44db922d3d9dc018ce92f745ca3bdf083c6ef Mon Sep 17 00:00:00 2001 From: Evgenii Mazhukin Date: Fri, 2 Feb 2024 20:07:23 +0000 Subject: [PATCH] [Jps IC] Extra tests for symbol resolution in Kotlin IC ^KT-65429 Merge-request: IJ-MR-125243 Merged-by: Evgenii Mazhukin GitOrigin-RevId: c1ce3b32cfbcbf4bfd3e5402c9c2816fa60775f9 --- .../addMethodDirectly_implicitThis/A.kt | 2 ++ .../addMethodDirectly_implicitThis/B.kt | 3 ++ .../addMethodDirectly_implicitThis/B.kt.new.1 | 3 ++ .../addMethodDirectly_implicitThis/B.kt.new.2 | 3 ++ .../addMethodDirectly_implicitThis/build.log | 33 +++++++++++++++++ .../addMethodDirectly_implicitThis/fun.kt | 3 ++ .../addMethodDirectly_implicitThis/usage.kt | 7 ++++ .../addMethodToParent_implicitThis/A.kt | 3 ++ .../addMethodToParent_implicitThis/A.kt.new.1 | 2 ++ .../addMethodToParent_implicitThis/A.kt.new.2 | 3 ++ .../addMethodToParent_implicitThis/B.kt | 3 ++ .../addMethodToParent_implicitThis/build.log | 33 +++++++++++++++++ .../addMethodToParent_implicitThis/fun.kt | 3 ++ .../addMethodToParent_implicitThis/usage.kt | 7 ++++ .../incremental/resolution/classOverFun/A.kt | 4 +++ .../resolution/classOverFun/A.kt.delete.1 | 0 .../resolution/classOverFun/A.kt.new.2 | 4 +++ .../resolution/classOverFun/build.log | 23 ++++++++++++ .../resolution/classOverFun/fun.kt | 3 ++ .../resolution/classOverFun/other.kt | 3 ++ .../resolution/classOverFun/usage.kt | 7 ++++ .../incremental/resolution/invokeOverFun/A.kt | 5 +++ .../resolution/invokeOverFun/A.kt.new.1 | 4 +++ .../resolution/invokeOverFun/A.kt.new.2 | 5 +++ .../resolution/invokeOverFun/build.log | 33 +++++++++++++++++ .../resolution/invokeOverFun/fun.kt | 1 + .../resolution/invokeOverFun/usage.kt | 6 ++++ .../IncrementalK2JvmJpsTestGenerated.java | 35 +++++++++++++++++++ 28 files changed, 241 insertions(+) create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/A.kt create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/B.kt create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/B.kt.new.1 create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/B.kt.new.2 create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/build.log create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/fun.kt create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/usage.kt create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/A.kt create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/A.kt.new.1 create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/A.kt.new.2 create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/B.kt create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/build.log create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/fun.kt create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/usage.kt create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/A.kt create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/A.kt.delete.1 create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/A.kt.new.2 create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/build.log create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/fun.kt create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/other.kt create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/usage.kt create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/A.kt create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/A.kt.new.1 create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/A.kt.new.2 create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/build.log create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/fun.kt create mode 100644 plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/usage.kt diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/A.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/A.kt new file mode 100644 index 000000000000..96378c09e5e9 --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/A.kt @@ -0,0 +1,2 @@ +open class A { +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/B.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/B.kt new file mode 100644 index 000000000000..b9a1e6343ebc --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/B.kt @@ -0,0 +1,3 @@ +class B : A() { + fun foo() {} +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/B.kt.new.1 b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/B.kt.new.1 new file mode 100644 index 000000000000..55f45525a941 --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/B.kt.new.1 @@ -0,0 +1,3 @@ +class B : A() { + +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/B.kt.new.2 b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/B.kt.new.2 new file mode 100644 index 000000000000..b9a1e6343ebc --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/B.kt.new.2 @@ -0,0 +1,3 @@ +class B : A() { + fun foo() {} +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/build.log b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/build.log new file mode 100644 index 000000000000..e0498903c7cb --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/build.log @@ -0,0 +1,33 @@ +================ Step #1 ================= + +Cleaning output files: + out/production/module/B.class + out/production/module/META-INF/module.kotlin_module +End of files +Compiling files: + src/B.kt +End of files +Exit code: OK +------------------------------------------ +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/UsageKt.class +End of files +Compiling files: + src/usage.kt +End of files +Exit code: OK +------------------------------------------ + +================ Step #2 ================= + +Cleaning output files: + out/production/module/B.class + out/production/module/META-INF/module.kotlin_module +End of files +Compiling files: + src/B.kt + // usage.kt should be recompiled +End of files +Exit code: OK +------------------------------------------ \ No newline at end of file diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/fun.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/fun.kt new file mode 100644 index 000000000000..f3b2ebc5254a --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/fun.kt @@ -0,0 +1,3 @@ +fun foo() { + +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/usage.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/usage.kt new file mode 100644 index 000000000000..f8eec423374e --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodDirectly_implicitThis/usage.kt @@ -0,0 +1,7 @@ + +fun usage() { + val b = B() + b.apply { + foo() + } +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/A.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/A.kt new file mode 100644 index 000000000000..c321b90d15a7 --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/A.kt @@ -0,0 +1,3 @@ +open class A { + fun foo() {} +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/A.kt.new.1 b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/A.kt.new.1 new file mode 100644 index 000000000000..96378c09e5e9 --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/A.kt.new.1 @@ -0,0 +1,2 @@ +open class A { +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/A.kt.new.2 b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/A.kt.new.2 new file mode 100644 index 000000000000..c321b90d15a7 --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/A.kt.new.2 @@ -0,0 +1,3 @@ +open class A { + fun foo() {} +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/B.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/B.kt new file mode 100644 index 000000000000..55f45525a941 --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/B.kt @@ -0,0 +1,3 @@ +class B : A() { + +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/build.log b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/build.log new file mode 100644 index 000000000000..8f7716bce15d --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/build.log @@ -0,0 +1,33 @@ +================ Step #1 ================= + +Cleaning output files: + out/production/module/A.class + out/production/module/META-INF/module.kotlin_module +End of files +Compiling files: + src/A.kt +End of files +Exit code: OK +------------------------------------------ +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/UsageKt.class +End of files +Compiling files: + src/usage.kt +End of files +Exit code: OK +------------------------------------------ + +================ Step #2 ================= + +Cleaning output files: + out/production/module/A.class + out/production/module/META-INF/module.kotlin_module +End of files +Compiling files: + src/A.kt + // usage.kt should be recompiled +End of files +Exit code: OK +------------------------------------------ \ No newline at end of file diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/fun.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/fun.kt new file mode 100644 index 000000000000..f3b2ebc5254a --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/fun.kt @@ -0,0 +1,3 @@ +fun foo() { + +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/usage.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/usage.kt new file mode 100644 index 000000000000..f8eec423374e --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/addMethodToParent_implicitThis/usage.kt @@ -0,0 +1,7 @@ + +fun usage() { + val b = B() + b.apply { + foo() + } +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/A.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/A.kt new file mode 100644 index 000000000000..83085304085b --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/A.kt @@ -0,0 +1,4 @@ +package a + +class A { +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/A.kt.delete.1 b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/A.kt.delete.1 new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/A.kt.new.2 b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/A.kt.new.2 new file mode 100644 index 000000000000..83085304085b --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/A.kt.new.2 @@ -0,0 +1,4 @@ +package a + +class A { +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/build.log b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/build.log new file mode 100644 index 000000000000..02993d70a7af --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/build.log @@ -0,0 +1,23 @@ +================ Step #1 ================= + +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/a/A.class +End of files +Cleaning output files: + out/production/module/c/UsageKt.class +End of files +Compiling files: + src/usage.kt +End of files +Exit code: OK +------------------------------------------ + +================ Step #2 ================= + +Compiling files: + src/A.kt + // usage.kt should be recompiled +End of files +Exit code: OK +------------------------------------------ \ No newline at end of file diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/fun.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/fun.kt new file mode 100644 index 000000000000..56c73be46d4a --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/fun.kt @@ -0,0 +1,3 @@ +package b + +fun A(defaultArgMakesCallUnambigousForSomeReason: Boolean = true) = 2 diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/other.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/other.kt new file mode 100644 index 000000000000..098389b48b21 --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/other.kt @@ -0,0 +1,3 @@ +package a + +val irrelevant = 2 // just to keep package "a" existing when A.kt is removed diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/usage.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/usage.kt new file mode 100644 index 000000000000..aed0394a0374 --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/classOverFun/usage.kt @@ -0,0 +1,7 @@ +package c + +import a.* +import b.* +fun usage() { + A() +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/A.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/A.kt new file mode 100644 index 000000000000..a544055fa5cc --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/A.kt @@ -0,0 +1,5 @@ + +class A { + + operator fun invoke() = 1 +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/A.kt.new.1 b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/A.kt.new.1 new file mode 100644 index 000000000000..6bb7f6c7f76c --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/A.kt.new.1 @@ -0,0 +1,4 @@ + +class A { + +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/A.kt.new.2 b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/A.kt.new.2 new file mode 100644 index 000000000000..7c4ca0ef59e6 --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/A.kt.new.2 @@ -0,0 +1,5 @@ + +class A { + + operator fun invoke() = 2 +} diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/build.log b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/build.log new file mode 100644 index 000000000000..8f7716bce15d --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/build.log @@ -0,0 +1,33 @@ +================ Step #1 ================= + +Cleaning output files: + out/production/module/A.class + out/production/module/META-INF/module.kotlin_module +End of files +Compiling files: + src/A.kt +End of files +Exit code: OK +------------------------------------------ +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/UsageKt.class +End of files +Compiling files: + src/usage.kt +End of files +Exit code: OK +------------------------------------------ + +================ Step #2 ================= + +Cleaning output files: + out/production/module/A.class + out/production/module/META-INF/module.kotlin_module +End of files +Compiling files: + src/A.kt + // usage.kt should be recompiled +End of files +Exit code: OK +------------------------------------------ \ No newline at end of file diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/fun.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/fun.kt new file mode 100644 index 000000000000..3f0c25029d5b --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/fun.kt @@ -0,0 +1 @@ +fun foo() = 40 diff --git a/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/usage.kt b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/usage.kt new file mode 100644 index 000000000000..c43b85f84a99 --- /dev/null +++ b/plugins/kotlin/jps/graphImplementationTests/testData/incremental/resolution/invokeOverFun/usage.kt @@ -0,0 +1,6 @@ + +fun usage() { + val foo = A() + + foo() +} diff --git a/plugins/kotlin/jps/graphImplementationTests/tests/org/jetbrains/kotlin/jpsGraph/test/IncrementalK2JvmJpsTestGenerated.java b/plugins/kotlin/jps/graphImplementationTests/tests/org/jetbrains/kotlin/jpsGraph/test/IncrementalK2JvmJpsTestGenerated.java index 304b656cc2fe..96d4fdf202d3 100644 --- a/plugins/kotlin/jps/graphImplementationTests/tests/org/jetbrains/kotlin/jpsGraph/test/IncrementalK2JvmJpsTestGenerated.java +++ b/plugins/kotlin/jps/graphImplementationTests/tests/org/jetbrains/kotlin/jpsGraph/test/IncrementalK2JvmJpsTestGenerated.java @@ -2968,6 +2968,41 @@ public class IncrementalK2JvmJpsTestGenerated extends AbstractIncrementalK2JvmJp } } + @TestMetadata("resolution") + @TestDataPath(".") + @RunWith(JUnit3RunnerWithInners.class) + public static class ResolutionTests extends AbstractIncrementalK2JvmJpsTest { + @Override + protected void setUp() { + super.setUp(); + setUpTests(); + } + + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath); + } + + @TestMetadata("classOverFun") + public void testClassShadowsFunction() throws Exception { + runTest("resolution/classOverFun"); + } + + @TestMetadata("addMethodDirectly_implicitThis") + public void testAddMethodDirectly() throws Exception { + runTest("resolution/addMethodDirectly_implicitThis"); + } + + @TestMetadata("addMethodToParent_implicitThis") + public void testAddMethodToParent() throws Exception { + runTest("resolution/addMethodToParent_implicitThis"); + } + + @TestMetadata("invokeOverFun") + public void testInvokeShadowsFunction() throws Exception { + runTest("resolution/invokeOverFun"); + } + } + @TestMetadata("multiModule/withJavaUsedInKotlin") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)