Add test with java reflection
This commit is contained in:
@@ -0,0 +1,42 @@
|
|||||||
|
// IGNORE_BACKEND: NATIVE, JS
|
||||||
|
// WITH_COROUTINES
|
||||||
|
// COMMON_COROUTINES_TEST
|
||||||
|
// MODULE: lib
|
||||||
|
// FILE: lib.kt
|
||||||
|
interface I {}
|
||||||
|
|
||||||
|
suspend inline fun foo() = object : I {}
|
||||||
|
|
||||||
|
// MODULE: useLib(lib)
|
||||||
|
// FILE: UseLib.java
|
||||||
|
import COROUTINES_PACKAGE.*;
|
||||||
|
import kotlin.Unit;
|
||||||
|
|
||||||
|
public class UseLib {
|
||||||
|
public static String useFoo() {
|
||||||
|
Object i = LibKt.foo(new MyContinuation());
|
||||||
|
return i.getClass().getName() + " " + i.getClass().getEnclosingClass().getName() + " " + i.getClass().getEnclosingClass().getEnclosingClass();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class MyContinuation implements Continuation<I> {
|
||||||
|
public CoroutineContext getContext() {
|
||||||
|
return EmptyCoroutineContext.INSTANCE;
|
||||||
|
}
|
||||||
|
public void resume(I value) {}
|
||||||
|
public void resumeWithException(Throwable e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MODULE: main(useLib)
|
||||||
|
// FILE: main.kt
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val res = UseLib.useFoo()
|
||||||
|
if (res == "LibKt\$foo\$2 LibKt null") {
|
||||||
|
return "OK"
|
||||||
|
} else {
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
}
|
||||||
Generated
+12
@@ -7116,6 +7116,18 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
|||||||
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines");
|
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("inlineWithJava.kt")
|
||||||
|
public void testInlineWithJava_1_2() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/inlineWithJava.kt");
|
||||||
|
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines.experimental");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("inlineWithJava.kt")
|
||||||
|
public void testInlineWithJava_1_3() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/inlineWithJava.kt");
|
||||||
|
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("simple.kt")
|
@TestMetadata("simple.kt")
|
||||||
public void testSimple_1_2() throws Exception {
|
public void testSimple_1_2() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/simple.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/simple.kt");
|
||||||
|
|||||||
+12
@@ -7116,6 +7116,18 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
|||||||
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines");
|
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("inlineWithJava.kt")
|
||||||
|
public void testInlineWithJava_1_2() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/inlineWithJava.kt");
|
||||||
|
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines.experimental");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("inlineWithJava.kt")
|
||||||
|
public void testInlineWithJava_1_3() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/inlineWithJava.kt");
|
||||||
|
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("simple.kt")
|
@TestMetadata("simple.kt")
|
||||||
public void testSimple_1_2() throws Exception {
|
public void testSimple_1_2() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/simple.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/simple.kt");
|
||||||
|
|||||||
+12
@@ -7116,6 +7116,18 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
|||||||
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines");
|
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("inlineWithJava.kt")
|
||||||
|
public void testInlineWithJava_1_2() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/inlineWithJava.kt");
|
||||||
|
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines.experimental");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("inlineWithJava.kt")
|
||||||
|
public void testInlineWithJava_1_3() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/inlineWithJava.kt");
|
||||||
|
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("simple.kt")
|
@TestMetadata("simple.kt")
|
||||||
public void testSimple_1_2() throws Exception {
|
public void testSimple_1_2() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/simple.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/simple.kt");
|
||||||
|
|||||||
+12
@@ -5968,6 +5968,18 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
|
|||||||
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines.experimental");
|
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines.experimental");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("inlineWithJava.kt")
|
||||||
|
public void testInlineWithJava_1_2() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/inlineWithJava.kt");
|
||||||
|
try {
|
||||||
|
doTestWithCoroutinesPackageReplacement(fileName, "kotlin.coroutines.experimental");
|
||||||
|
}
|
||||||
|
catch (Throwable ignore) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw new AssertionError("Looks like this test can be unmuted. Remove IGNORE_BACKEND directive for that.");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("simple.kt")
|
@TestMetadata("simple.kt")
|
||||||
public void testSimple_1_2() throws Exception {
|
public void testSimple_1_2() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/simple.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/coroutines/multiModule/simple.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user