[K/N] Adjust moved special backend checks tests

^KT-61564
This commit is contained in:
Vladimir Sukharev
2023-11-10 13:07:12 +01:00
committed by Space Team
parent 8f12bf6cc8
commit 08bc0a6bd0
74 changed files with 2155 additions and 19 deletions
@@ -115,4 +115,464 @@ public class LLFirNativeTestGenerated extends AbstractLLFirNativeTest {
public void testTopLevelSingleton() throws Exception { public void testTopLevelSingleton() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/topLevelSingleton.kt"); runTest("compiler/testData/diagnostics/nativeTests/topLevelSingleton.kt");
} }
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class SpecialBackendChecks {
@Test
public void testAllFilesPresentInSpecialBackendChecks() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class CInterop {
@Test
public void testAllFilesPresentInCInterop() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t1.kt")
public void testT1() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t1.kt");
}
@Test
@TestMetadata("t10.kt")
public void testT10() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t10.kt");
}
@Test
@TestMetadata("t11.kt")
public void testT11() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t11.kt");
}
@Test
@TestMetadata("t12.kt")
public void testT12() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t12.kt");
}
@Test
@TestMetadata("t13.kt")
public void testT13() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t13.kt");
}
@Test
@TestMetadata("t14.kt")
public void testT14() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t14.kt");
}
@Test
@TestMetadata("t37.kt")
public void testT37() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t37.kt");
}
@Test
@TestMetadata("t38.kt")
public void testT38() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t38.kt");
}
@Test
@TestMetadata("t40.kt")
public void testT40() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t40.kt");
}
@Test
@TestMetadata("t41.kt")
public void testT41() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t41.kt");
}
@Test
@TestMetadata("t42.kt")
public void testT42() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t42.kt");
}
@Test
@TestMetadata("t43.kt")
public void testT43() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t43.kt");
}
@Test
@TestMetadata("t44.kt")
public void testT44() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t44.kt");
}
@Test
@TestMetadata("t45.kt")
public void testT45() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t45.kt");
}
@Test
@TestMetadata("t46.kt")
public void testT46() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t46.kt");
}
@Test
@TestMetadata("t47.kt")
public void testT47() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t47.kt");
}
@Test
@TestMetadata("t60.kt")
public void testT60() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t60.kt");
}
@Test
@TestMetadata("t63.kt")
public void testT63() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t63.kt");
}
@Test
@TestMetadata("t64.kt")
public void testT64() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t64.kt");
}
@Test
@TestMetadata("t8.kt")
public void testT8() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t8.kt");
}
@Test
@TestMetadata("t9.kt")
public void testT9() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t9.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class Concurrent {
@Test
public void testAllFilesPresentInConcurrent() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t48.kt")
public void testT48() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t48.kt");
}
@Test
@TestMetadata("t49.kt")
public void testT49() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t49.kt");
}
@Test
@TestMetadata("t50.kt")
public void testT50() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t50.kt");
}
@Test
@TestMetadata("t51.kt")
public void testT51() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t51.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class ImmutableBlobOf {
@Test
public void testAllFilesPresentInImmutableBlobOf() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t54.kt")
public void testT54() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t54.kt");
}
@Test
@TestMetadata("t55.kt")
public void testT55() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t55.kt");
}
@Test
@TestMetadata("t56.kt")
public void testT56() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t56.kt");
}
@Test
@TestMetadata("t57.kt")
public void testT57() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t57.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class NativeRef {
@Test
public void testAllFilesPresentInNativeRef() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t52.kt")
public void testT52() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef/t52.kt");
}
@Test
@TestMetadata("t53.kt")
public void testT53() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef/t53.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class ObjCInterop {
@Test
public void testAllFilesPresentInObjCInterop() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t15.kt")
public void testT15() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t15.kt");
}
@Test
@TestMetadata("t16.kt")
public void testT16() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t16.kt");
}
@Test
@TestMetadata("t17.kt")
public void testT17() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t17.kt");
}
@Test
@TestMetadata("t18.kt")
public void testT18() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t18.kt");
}
@Test
@TestMetadata("t2.kt")
public void testT2() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t2.kt");
}
@Test
@TestMetadata("t20.kt")
public void testT20() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t20.kt");
}
@Test
@TestMetadata("t21.kt")
public void testT21() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t21.kt");
}
@Test
@TestMetadata("t22.kt")
public void testT22() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t22.kt");
}
@Test
@TestMetadata("t23.kt")
public void testT23() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t23.kt");
}
@Test
@TestMetadata("t24.kt")
public void testT24() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t24.kt");
}
@Test
@TestMetadata("t25.kt")
public void testT25() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t25.kt");
}
@Test
@TestMetadata("t26.kt")
public void testT26() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t26.kt");
}
@Test
@TestMetadata("t27.kt")
public void testT27() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t27.kt");
}
@Test
@TestMetadata("t28.kt")
public void testT28() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t28.kt");
}
@Test
@TestMetadata("t29.kt")
public void testT29() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t29.kt");
}
@Test
@TestMetadata("t30.kt")
public void testT30() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t30.kt");
}
@Test
@TestMetadata("t31.kt")
public void testT31() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t31.kt");
}
@Test
@TestMetadata("t32.kt")
public void testT32() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t32.kt");
}
@Test
@TestMetadata("t33.kt")
public void testT33() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t33.kt");
}
@Test
@TestMetadata("t34.kt")
public void testT34() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t34.kt");
}
@Test
@TestMetadata("t35.kt")
public void testT35() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t35.kt");
}
@Test
@TestMetadata("t4.kt")
public void testT4() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t4.kt");
}
@Test
@TestMetadata("t5.kt")
public void testT5() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t5.kt");
}
@Test
@TestMetadata("t6.kt")
public void testT6() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t6.kt");
}
@Test
@TestMetadata("t61.kt")
public void testT61() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t61.kt");
}
@Test
@TestMetadata("t62.kt")
public void testT62() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t62.kt");
}
@Test
@TestMetadata("t7.kt")
public void testT7() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t7.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class Posix {
@Test
public void testAllFilesPresentInPosix() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t3.kt")
public void testT3() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix/t3.kt");
}
@Test
@TestMetadata("t36.kt")
public void testT36() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix/t36.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class Reflect {
@Test
public void testAllFilesPresentInReflect() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t58.kt")
public void testT58() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect/t58.kt");
}
@Test
@TestMetadata("t59.kt")
public void testT59() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect/t59.kt");
}
}
}
} }
@@ -115,4 +115,464 @@ public class LLFirReversedNativeTestGenerated extends AbstractLLFirReversedNativ
public void testTopLevelSingleton() throws Exception { public void testTopLevelSingleton() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/topLevelSingleton.kt"); runTest("compiler/testData/diagnostics/nativeTests/topLevelSingleton.kt");
} }
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class SpecialBackendChecks {
@Test
public void testAllFilesPresentInSpecialBackendChecks() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class CInterop {
@Test
public void testAllFilesPresentInCInterop() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t1.kt")
public void testT1() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t1.kt");
}
@Test
@TestMetadata("t10.kt")
public void testT10() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t10.kt");
}
@Test
@TestMetadata("t11.kt")
public void testT11() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t11.kt");
}
@Test
@TestMetadata("t12.kt")
public void testT12() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t12.kt");
}
@Test
@TestMetadata("t13.kt")
public void testT13() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t13.kt");
}
@Test
@TestMetadata("t14.kt")
public void testT14() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t14.kt");
}
@Test
@TestMetadata("t37.kt")
public void testT37() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t37.kt");
}
@Test
@TestMetadata("t38.kt")
public void testT38() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t38.kt");
}
@Test
@TestMetadata("t40.kt")
public void testT40() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t40.kt");
}
@Test
@TestMetadata("t41.kt")
public void testT41() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t41.kt");
}
@Test
@TestMetadata("t42.kt")
public void testT42() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t42.kt");
}
@Test
@TestMetadata("t43.kt")
public void testT43() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t43.kt");
}
@Test
@TestMetadata("t44.kt")
public void testT44() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t44.kt");
}
@Test
@TestMetadata("t45.kt")
public void testT45() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t45.kt");
}
@Test
@TestMetadata("t46.kt")
public void testT46() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t46.kt");
}
@Test
@TestMetadata("t47.kt")
public void testT47() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t47.kt");
}
@Test
@TestMetadata("t60.kt")
public void testT60() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t60.kt");
}
@Test
@TestMetadata("t63.kt")
public void testT63() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t63.kt");
}
@Test
@TestMetadata("t64.kt")
public void testT64() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t64.kt");
}
@Test
@TestMetadata("t8.kt")
public void testT8() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t8.kt");
}
@Test
@TestMetadata("t9.kt")
public void testT9() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t9.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class Concurrent {
@Test
public void testAllFilesPresentInConcurrent() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t48.kt")
public void testT48() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t48.kt");
}
@Test
@TestMetadata("t49.kt")
public void testT49() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t49.kt");
}
@Test
@TestMetadata("t50.kt")
public void testT50() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t50.kt");
}
@Test
@TestMetadata("t51.kt")
public void testT51() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t51.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class ImmutableBlobOf {
@Test
public void testAllFilesPresentInImmutableBlobOf() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t54.kt")
public void testT54() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t54.kt");
}
@Test
@TestMetadata("t55.kt")
public void testT55() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t55.kt");
}
@Test
@TestMetadata("t56.kt")
public void testT56() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t56.kt");
}
@Test
@TestMetadata("t57.kt")
public void testT57() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t57.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class NativeRef {
@Test
public void testAllFilesPresentInNativeRef() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t52.kt")
public void testT52() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef/t52.kt");
}
@Test
@TestMetadata("t53.kt")
public void testT53() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef/t53.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class ObjCInterop {
@Test
public void testAllFilesPresentInObjCInterop() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t15.kt")
public void testT15() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t15.kt");
}
@Test
@TestMetadata("t16.kt")
public void testT16() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t16.kt");
}
@Test
@TestMetadata("t17.kt")
public void testT17() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t17.kt");
}
@Test
@TestMetadata("t18.kt")
public void testT18() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t18.kt");
}
@Test
@TestMetadata("t2.kt")
public void testT2() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t2.kt");
}
@Test
@TestMetadata("t20.kt")
public void testT20() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t20.kt");
}
@Test
@TestMetadata("t21.kt")
public void testT21() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t21.kt");
}
@Test
@TestMetadata("t22.kt")
public void testT22() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t22.kt");
}
@Test
@TestMetadata("t23.kt")
public void testT23() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t23.kt");
}
@Test
@TestMetadata("t24.kt")
public void testT24() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t24.kt");
}
@Test
@TestMetadata("t25.kt")
public void testT25() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t25.kt");
}
@Test
@TestMetadata("t26.kt")
public void testT26() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t26.kt");
}
@Test
@TestMetadata("t27.kt")
public void testT27() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t27.kt");
}
@Test
@TestMetadata("t28.kt")
public void testT28() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t28.kt");
}
@Test
@TestMetadata("t29.kt")
public void testT29() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t29.kt");
}
@Test
@TestMetadata("t30.kt")
public void testT30() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t30.kt");
}
@Test
@TestMetadata("t31.kt")
public void testT31() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t31.kt");
}
@Test
@TestMetadata("t32.kt")
public void testT32() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t32.kt");
}
@Test
@TestMetadata("t33.kt")
public void testT33() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t33.kt");
}
@Test
@TestMetadata("t34.kt")
public void testT34() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t34.kt");
}
@Test
@TestMetadata("t35.kt")
public void testT35() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t35.kt");
}
@Test
@TestMetadata("t4.kt")
public void testT4() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t4.kt");
}
@Test
@TestMetadata("t5.kt")
public void testT5() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t5.kt");
}
@Test
@TestMetadata("t6.kt")
public void testT6() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t6.kt");
}
@Test
@TestMetadata("t61.kt")
public void testT61() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t61.kt");
}
@Test
@TestMetadata("t62.kt")
public void testT62() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t62.kt");
}
@Test
@TestMetadata("t7.kt")
public void testT7() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t7.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class Posix {
@Test
public void testAllFilesPresentInPosix() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t3.kt")
public void testT3() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix/t3.kt");
}
@Test
@TestMetadata("t36.kt")
public void testT36() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix/t36.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect")
@TestDataPath("$PROJECT_ROOT")
@Tag("llFirNative")
public class Reflect {
@Test
public void testAllFilesPresentInReflect() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t58.kt")
public void testT58() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect/t58.kt");
}
@Test
@TestMetadata("t59.kt")
public void testT59() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect/t59.kt");
}
}
}
} }
@@ -22,12 +22,14 @@ object CommonKLibResolver {
logger: Logger, logger: Logger,
zipAccessor: ZipFileSystemAccessor? = null, zipAccessor: ZipFileSystemAccessor? = null,
lenient: Boolean = false, lenient: Boolean = false,
knownIrProviders: List<String> = listOf(),
): KotlinLibraryResolveResult = ): KotlinLibraryResolveResult =
resolveWithoutDependencies( resolveWithoutDependencies(
libraries, libraries,
logger, logger,
zipAccessor, zipAccessor,
lenient, lenient,
knownIrProviders,
).resolveWithDependencies() ).resolveWithDependencies()
fun resolveWithoutDependencies( fun resolveWithoutDependencies(
@@ -35,6 +37,7 @@ object CommonKLibResolver {
logger: Logger, logger: Logger,
zipAccessor: ZipFileSystemAccessor?, zipAccessor: ZipFileSystemAccessor?,
lenient: Boolean = false, lenient: Boolean = false,
knownIrProviders: List<String> = listOf(),
): KLibResolution { ): KLibResolution {
val unresolvedLibraries = libraries.map { UnresolvedLibrary(it, null, lenient) } val unresolvedLibraries = libraries.map { UnresolvedLibrary(it, null, lenient) }
val libraryAbsolutePaths = libraries.map { File(it).absolutePath } val libraryAbsolutePaths = libraries.map { File(it).absolutePath }
@@ -46,7 +49,8 @@ object CommonKLibResolver {
localKotlinDir = null, localKotlinDir = null,
skipCurrentDir = false, skipCurrentDir = false,
logger = logger, logger = logger,
zipAccessor = zipAccessor zipAccessor = zipAccessor,
knownIrProviders = knownIrProviders,
).libraryResolver() ).libraryResolver()
return KLibResolution( return KLibResolution(
@@ -79,7 +83,8 @@ private class KLibResolverHelper(
localKotlinDir: String?, localKotlinDir: String?,
skipCurrentDir: Boolean, skipCurrentDir: Boolean,
logger: Logger, logger: Logger,
private val zipAccessor: ZipFileSystemAccessor? private val zipAccessor: ZipFileSystemAccessor?,
knownIrProviders: List<String>,
) : KotlinLibraryProperResolverWithAttributes<KotlinLibrary>( ) : KotlinLibraryProperResolverWithAttributes<KotlinLibrary>(
repositories, repositories,
directLibs, directLibs,
@@ -87,7 +92,7 @@ private class KLibResolverHelper(
localKotlinDir, localKotlinDir,
skipCurrentDir, skipCurrentDir,
logger, logger,
emptyList() knownIrProviders,
) { ) {
// Stick with the default KotlinLibrary for now. // Stick with the default KotlinLibrary for now.
override fun libraryComponentBuilder(file: File, isDefault: Boolean) = createKotlinLibraryComponents(file, isDefault, zipAccessor) override fun libraryComponentBuilder(file: File, isDefault: Boolean) = createKotlinLibraryComponents(file, isDefault, zipAccessor)
@@ -13,4 +13,6 @@ object ConfigurationDirectives : SimpleDirectivesContainer() {
) )
val WITH_STDLIB by directive("Add Kotlin stdlib to classpath") val WITH_STDLIB by directive("Add Kotlin stdlib to classpath")
val WITH_PLATFORM_LIBS by directive("Add platform libs to classpath")
} }
@@ -1,10 +1,10 @@
This testsuit fir specialBackendChecks on Mac hosts relies on platform libs are installed. This testsuit fir specialBackendChecks on Mac hosts relies on platform libs are installed.
To run testsuit locally, make sure the above is executed first: To run testsuit locally, make sure the above is executed first:
- `./gradlew :kotlin-native:platformLibs:macos_arm64Install` or - `./gradlew :kotlin-native:platformLibs:macos_arm64Install` or
- `./gradlew :kotlin-native:platformLibs:macos_x64Install` - `./gradlew :kotlin-native:platformLibs:macos_x64Install`
This testsuit is run differently for K1 and K2 frontends: This testsuit is run differently for K1 and K2 frontends:
- K1/N manual: run `compiler/testData/diagnostics/nativeTests/specialBackendChecks/runtests.sh -language-version 1.9`, - K1/N manual: run `compiler/testData/diagnostics/nativeTests/specialBackendChecks/runtests.sh -language-version 1.9`,
- K2/N manual: run `compiler/testData/diagnostics/nativeTests/specialBackendChecks/runtests.sh`, - K2/N manual: run `compiler/testData/diagnostics/nativeTests/specialBackendChecks/runtests.sh`,
- K2/N tests are also run in scope of `FirLightTreeOldFrontendNativeDiagnosticsTestGenerated` and `FirPsiOldFrontendNativeDiagnosticsTestGenerated`. - K2/N tests are also run in scope of `FirLightTreeOldFrontendNativeDiagnosticsTestGenerated` and `FirPsiOldFrontendNativeDiagnosticsTestGenerated`.
@@ -57,4 +57,100 @@ compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t64.kt
compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t8.kt compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t8.kt
/tmp/t8.kt:8:5: error: type kotlin.Function0<*> of callback parameter 1 is not supported here: * as return type /tmp/t8.kt:8:5: error: type kotlin.Function0<*> of callback parameter 1 is not supported here: * as return type
compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t9.kt compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t9.kt
/tmp/t41.kt:9:5: error: kotlinx.cinterop.staticCFunction must take an unbound, non-capturing function or lambda, but captures at:
/tmp/t41.kt:7:17: x
compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t48.kt
/tmp/t48.kt:11:12: error: kotlin.native.concurrent.Worker.execute must take an unbound, non-capturing function or lambda, but captures at:
/tmp/t48.kt:11:50
compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t49.kt
/tmp/t49.kt:7:12: error: kotlin.native.concurrent.Worker.execute must take an unbound, non-capturing function or lambda, but captures at:
/tmp/t49.kt:7:61: x
compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t50.kt
/tmp/t50.kt:12:16: error: kotlin.native.concurrent.Worker.execute must take an unbound, non-capturing function or lambda, but captures at:
/tmp/t50.kt:12:54
compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t51.kt
/tmp/t51.kt:10:28: error: kotlin.native.concurrent.Worker.execute must take an unbound, non-capturing function or lambda, but captures at:
/tmp/t51.kt:10:66
compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t54.kt
/tmp/t54.kt:2:44: error: no spread elements allowed here
compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t55.kt
/tmp/t55.kt:2:37: error: all elements of binary blob must be constants
compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t56.kt
/tmp/t56.kt:2:29: error: incorrect value for binary data: 1000
compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t57.kt
/tmp/t57.kt:2:13: error: expected at least one element
compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef/t52.kt
/tmp/t52.kt:6:5: error: kotlin.native.ref.createCleaner must take an unbound, non-capturing function or lambda, but captures at:
/tmp/t52.kt:6:33: x
compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef/t53.kt
/tmp/t53.kt:10:5: error: kotlin.native.ref.createCleaner must take an unbound, non-capturing function or lambda, but captures at:
/tmp/t53.kt:10:23
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t15.kt
/tmp/t15.kt:6:26: error: type kotlin.Function0<kotlin.Unit> is not supported here: not supported as variadic argument
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t16.kt
/tmp/t16.kt:8:26: error: type <root>.Z is not supported here: doesn't correspond to any C type
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t17.kt
/tmp/t17.kt:8:15: error: super calls to Objective-C protocols are not allowed
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t18.kt
/tmp/t18.kt:8:19: error: super calls to Objective-C meta classes are not supported yet
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t2.kt
/tmp/t2.kt:6:5: error: 'handleFailureInFunction' overrides nothing.
override fun handleFailureInFunction(functionName: String, file: String, lineNumber: NSInteger /* = Long */, description: String?, vararg args: Any?) { }
^
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t20.kt
/tmp/t20.kt:6:1: error: only classes are supported as subtypes of Objective-C types
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t21.kt
/tmp/t21.kt:6:1: error: non-final Kotlin subclasses of Objective-C classes are not yet supported
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t22.kt
/tmp/t22.kt:6:1: error: fields are not supported for Companion of subclass of ObjC type
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t23.kt
/tmp/t23.kt:8:1: error: mixing Kotlin and Objective-C supertypes is not supported
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t24.kt
/tmp/t24.kt:6:1: error: only companion objects of subclasses of Objective-C classes can inherit from Objective-C metaclasses
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t25.kt
/tmp/t25.kt:7:5: error: can't override 'toString', override 'description' instead
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t26.kt
/tmp/t26.kt:11:9: error: @kotlinx.cinterop.ObjCAction method must not have extension receiver
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t27.kt
/tmp/t27.kt:11:13: error: unexpected @kotlinx.cinterop.ObjCAction method parameter type: kotlin.String
Only Objective-C object types are supported here
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t28.kt
/tmp/t28.kt:8:5: error: unexpected @kotlinx.cinterop.ObjCAction method return type: kotlin.Int
Only 'Unit' is supported here
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t29.kt
/tmp/t29.kt:9:5: error: @kotlinx.cinterop.ObjCOutlet property must be var
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t30.kt
/tmp/t30.kt:10:9: error: @kotlinx.cinterop.ObjCOutlet must not have extension receiver
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t31.kt
/tmp/t31.kt:8:5: error: unexpected @kotlinx.cinterop.ObjCOutlet type: kotlin.String
Only Objective-C object types are supported here
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t32.kt
/tmp/t32.kt:8:5: error: constructor with @kotlinx.cinterop.ObjCObjectBase.OverrideInit doesn't override any super class constructor.
It must completely match by parameter names and types.
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t33.kt
/tmp/t33.kt:8:5: error: constructor with @kotlinx.cinterop.ObjCObjectBase.OverrideInit overrides initializer that is already overridden explicitly
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t34.kt
/tmp/t34.kt:8:5: error: only 0, 1 or 2 parameters are supported here
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t35.kt
/tmp/t35.kt:7:13: error: unable to call non-designated initializer as super constructor
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t4.kt
/tmp/t4.kt:6:21: error: callable references to variadic Objective-C methods are not supported
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t5.kt
/tmp/t5.kt:6:82: error: passing String as variadic Objective-C argument is ambiguous; cast it to NSString or pass with '.cstr' as C string
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t6.kt
/tmp/t6.kt:6:96: error: when calling variadic Objective-C methods spread operator is supported only for *arrayOf(...)
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t61.kt
/tmp/t61.kt:4:5: error: only companion objects of subclasses of Objective-C classes can inherit from Objective-C metaclasses
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t62.kt
/tmp/t62.kt:3:1: error: only companion objects of subclasses of Objective-C classes can inherit from Objective-C metaclasses
compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t7.kt
/tmp/t7.kt:6:40: error: when calling variadic C functions spread operator is supported only for *arrayOf(...)
compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix/t3.kt
/tmp/t3.kt:6:13: error: callable references to variadic C functions are not supported
compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix/t36.kt
/tmp/t36.kt:6:13: error: native interop types constructors must not be called directly
compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect/t58.kt
/tmp/t58.kt:6:5: error: non-reified type parameters with recursive bounds are not supported yet: TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Comparable<T of <root>.foo>] reified:false
compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect/t59.kt
/tmp/t59.kt:6:5: error: non-reified type parameters with recursive bounds are not supported yet: TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Comparable<T of <root>.foo>] reified:false
``` ```
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
fun foo(x: Int, vararg s: String): Int { fun foo(x: Int, vararg s: String): Int {
@@ -6,6 +7,7 @@ fun foo(x: Int, vararg s: String): Int {
return sum return sum
} }
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
fun bar() { fun bar() {
staticCFunction(::foo) staticCFunction(::foo)
} }
@@ -1,7 +1,9 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
fun foo(f: Function1<*, Int>) = f fun foo(f: Function1<*, Int>) = f
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
fun bar() { fun bar() {
staticCFunction(::foo) staticCFunction(::foo)
} }
@@ -1,7 +1,9 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
fun foo(f: Function1<in Int, Int>) = f fun foo(f: Function1<in Int, Int>) = f
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
fun bar() { fun bar() {
staticCFunction(::foo) staticCFunction(::foo)
} }
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
@file:OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
import kotlinx.cinterop.* import kotlinx.cinterop.*
fun foo(x: CValue<*>?) = x fun foo(x: CValue<*>?) = x
@@ -1,5 +1,7 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
fun <T: CVariable> bar() { fun <T: CVariable> bar() {
fun foo(x: CValue<T>) = x fun foo(x: CValue<T>) = x
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
@file:OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
import kotlinx.cinterop.* import kotlinx.cinterop.*
class Z(rawPtr: NativePtr): CStructVar(rawPtr) class Z(rawPtr: NativePtr): CStructVar(rawPtr)
@@ -1,6 +1,9 @@
// FIR_IDENTICAL
// OPT_IN: kotlin.native.internal.InternalForKotlinNative
import kotlinx.cinterop.* import kotlinx.cinterop.*
import kotlinx.cinterop.internal.* import kotlinx.cinterop.internal.*
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
@CStruct(spelling = "struct { }") class Z constructor(rawPtr: NativePtr) : CStructVar(rawPtr) { @CStruct(spelling = "struct { }") class Z constructor(rawPtr: NativePtr) : CStructVar(rawPtr) {
val x: Pair<Int, Int>? = null val x: Pair<Int, Int>? = null
@CStruct.MemberAt(offset = 0L) get @CStruct.MemberAt(offset = 0L) get
@@ -1,6 +1,9 @@
// FIR_IDENTICAL
// OPT_IN: kotlin.native.internal.InternalForKotlinNative
import kotlinx.cinterop.* import kotlinx.cinterop.*
import kotlinx.cinterop.internal.* import kotlinx.cinterop.internal.*
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
@CStruct(spelling = "struct { }") class Z constructor(rawPtr: NativePtr) : CStructVar(rawPtr) { @CStruct(spelling = "struct { }") class Z constructor(rawPtr: NativePtr) : CStructVar(rawPtr) {
var x: Pair<Int, Int>? = null var x: Pair<Int, Int>? = null
@CStruct.MemberAt(offset = 0L) get @CStruct.MemberAt(offset = 0L) get
@@ -1,9 +1,11 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
class Z { class Z {
fun foo(x: Int) = x fun foo(x: Int) = x
} }
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
fun bar() { fun bar() {
staticCFunction(Z()::foo) staticCFunction(Z()::foo)
} }
@@ -1,5 +1,7 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
fun bar(x: Int) { fun bar(x: Int) {
fun foo() = x fun foo() = x
@@ -1,7 +1,9 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
fun foo(x: Any) = x fun foo(x: Any) = x
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
fun bar() { fun bar() {
staticCFunction<String, Any>(::foo) staticCFunction<String, Any>(::foo)
} }
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
@Suppress("DEPRECATION")
fun bar(x: Float) = x.signExtend<Int>() fun bar(x: Float) = x.signExtend<Int>()
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
@Suppress("DEPRECATION")
fun bar(x: Int) = x.signExtend<Float>() fun bar(x: Int) = x.signExtend<Float>()
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
@Suppress("DEPRECATION")
fun bar(x: Int) = x.signExtend<Short>() fun bar(x: Int) = x.signExtend<Short>()
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
@Suppress("DEPRECATION")
fun bar(x: Int) = x.narrow<Long>() fun bar(x: Int) = x.narrow<Long>()
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
@file:OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
import kotlinx.cinterop.* import kotlinx.cinterop.*
fun bar(x: Int) = x.convert<String>() fun bar(x: Int) = x.convert<String>()
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
@file:OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
import kotlinx.cinterop.* import kotlinx.cinterop.*
class Vertex constructor(rawPtr: NativePtr) : CStructVar(rawPtr) { class Vertex constructor(rawPtr: NativePtr) : CStructVar(rawPtr) {
@@ -6,5 +8,6 @@ class Vertex constructor(rawPtr: NativePtr) : CStructVar(rawPtr) {
var r: Float = 0f var r: Float = 0f
var g: Float = 0f var g: Float = 0f
var b: Float = 0f var b: Float = 0f
@Suppress("DEPRECATION")
companion object : CStructVar.Type(40, 8) companion object : CStructVar.Type(40, 8)
} }
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
import kotlin.coroutines.* import kotlin.coroutines.*
@@ -17,6 +18,7 @@ fun startCoroutine(block: suspend () -> Unit) {
block.startCoroutine(EmptyContinuation) block.startCoroutine(EmptyContinuation)
} }
@OptIn(kotlinx.cinterop.BetaInteropApi::class)
fun main() { fun main() {
autoreleasepool { autoreleasepool {
startCoroutine { startCoroutine {
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
import kotlin.coroutines.* import kotlin.coroutines.*
@@ -17,8 +18,10 @@ fun startCoroutine(block: suspend () -> Unit) {
block.startCoroutine(EmptyContinuation) block.startCoroutine(EmptyContinuation)
} }
@OptIn(kotlinx.cinterop.BetaInteropApi::class)
inline fun <T> myAutoreleasepool(block: () -> T) = autoreleasepool(block) inline fun <T> myAutoreleasepool(block: () -> T) = autoreleasepool(block)
@OptIn(kotlinx.cinterop.BetaInteropApi::class)
fun main() { fun main() {
autoreleasepool { autoreleasepool {
startCoroutine { startCoroutine {
@@ -1,7 +1,9 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
fun foo(f: Function0<*>) = f fun foo(f: Function0<*>) = f
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
fun bar() { fun bar() {
staticCFunction(::foo) staticCFunction(::foo)
} }
@@ -1,7 +1,9 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
fun foo(f: Function0<out Int>) = f fun foo(f: Function0<out Int>) = f
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
fun bar() { fun bar() {
staticCFunction(::foo) staticCFunction(::foo)
} }
@@ -1,9 +1,11 @@
// FIR_IDENTICAL
import kotlin.native.concurrent.* import kotlin.native.concurrent.*
class Z(val x: Int) { class Z(val x: Int) {
fun bar(s: String) = s + x.toString() fun bar(s: String) = s + x.toString()
} }
@OptIn(ObsoleteWorkersApi::class)
fun foo(x: Int) { fun foo(x: Int) {
val worker = Worker.start() val worker = Worker.start()
worker.execute(TransferMode.SAFE, { "zzz" }, Z(x)::bar) worker.execute(TransferMode.SAFE, { "zzz" }, Z(x)::bar)
@@ -1,5 +1,7 @@
// FIR_IDENTICAL
import kotlin.native.concurrent.* import kotlin.native.concurrent.*
@OptIn(ObsoleteWorkersApi::class)
fun foo(x: Int) { fun foo(x: Int) {
val worker = Worker.start() val worker = Worker.start()
worker.execute(TransferMode.SAFE, { "zzz" }) { s -> s + x.toString() } worker.execute(TransferMode.SAFE, { "zzz" }) { s -> s + x.toString() }
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
@file:OptIn(ObsoleteWorkersApi::class) @file:OptIn(ObsoleteWorkersApi::class)
import kotlin.native.concurrent.* import kotlin.native.concurrent.*
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
@file:OptIn(ObsoleteWorkersApi::class) @file:OptIn(ObsoleteWorkersApi::class)
import kotlin.native.concurrent.* import kotlin.native.concurrent.*
@@ -1 +1,2 @@
// FIR_IDENTICAL
fun foo(arr: ShortArray) = immutableBlobOf(*arr) fun foo(arr: ShortArray) = immutableBlobOf(*arr)
@@ -1 +1,2 @@
// FIR_IDENTICAL
fun foo(x: Short) = immutableBlobOf(x) fun foo(x: Short) = immutableBlobOf(x)
@@ -1 +1,2 @@
// FIR_IDENTICAL
fun foo() = immutableBlobOf(1000) fun foo() = immutableBlobOf(1000)
@@ -1 +1,2 @@
// FIR_IDENTICAL
fun foo() = immutableBlobOf() fun foo() = immutableBlobOf()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
import kotlin.native.ref.* import kotlin.native.ref.*
@OptIn(kotlin.experimental.ExperimentalNativeApi::class) @OptIn(kotlin.experimental.ExperimentalNativeApi::class)
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
import kotlin.native.ref.* import kotlin.native.ref.*
class C(val x: Int) { class C(val x: Int) {
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.darwin.* import platform.darwin.*
class Foo : NSObject() { class Foo : NSObject() {
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,8 +1,12 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import kotlinx.cinterop.* import kotlinx.cinterop.*
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
class Zzz : NSAssertionHandler() { class Zzz : NSAssertionHandler() {
@OptIn(kotlinx.cinterop.BetaInteropApi::class)
@ObjCAction @ObjCAction
fun String.foo() = println(this) fun String.foo() = println(this)
} }
@@ -1,8 +1,12 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import kotlinx.cinterop.* import kotlinx.cinterop.*
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
class Zzz : NSAssertionHandler() { class Zzz : NSAssertionHandler() {
@OptIn(kotlinx.cinterop.BetaInteropApi::class)
@ObjCAction @ObjCAction
fun foo(x: String) = println(x) fun foo(x: String) = println(x)
} }
@@ -1,8 +1,11 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import kotlinx.cinterop.* import kotlinx.cinterop.*
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
class Zzz : NSAssertionHandler() { class Zzz : NSAssertionHandler() {
@OptIn(kotlinx.cinterop.BetaInteropApi::class)
@ObjCAction @ObjCAction
fun foo() = 42 fun foo() = 42
} }
@@ -1,8 +1,12 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import kotlinx.cinterop.* import kotlinx.cinterop.*
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
class Zzz : NSAssertionHandler() { class Zzz : NSAssertionHandler() {
@OptIn(kotlinx.cinterop.BetaInteropApi::class)
@ObjCOutlet @ObjCOutlet
val x: NSObject get() = this val x: NSObject get() = this
} }
@@ -1,8 +1,11 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import kotlinx.cinterop.* import kotlinx.cinterop.*
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
class Zzz : NSAssertionHandler() { class Zzz : NSAssertionHandler() {
@OptIn(kotlinx.cinterop.BetaInteropApi::class)
@ObjCOutlet @ObjCOutlet
var NSObject.x: NSObject var NSObject.x: NSObject
get() = this get() = this
@@ -1,8 +1,11 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import kotlinx.cinterop.* import kotlinx.cinterop.*
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
class Zzz : NSAssertionHandler() { class Zzz : NSAssertionHandler() {
@OptIn(kotlinx.cinterop.BetaInteropApi::class)
@ObjCOutlet @ObjCOutlet
var x: String var x: String
get() = "zzz" get() = "zzz"
@@ -1,8 +1,11 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import kotlinx.cinterop.* import kotlinx.cinterop.*
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
class Zzz : NSAssertionHandler { class Zzz : NSAssertionHandler {
@OptIn(kotlinx.cinterop.BetaInteropApi::class)
@OverrideInit @OverrideInit
constructor(x: Int) { } constructor(x: Int) { }
} }
@@ -1,10 +1,14 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import kotlinx.cinterop.* import kotlinx.cinterop.*
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
class Zzz : NSString { class Zzz : NSString {
@OptIn(kotlinx.cinterop.BetaInteropApi::class)
@OverrideInit @OverrideInit
constructor(coder: NSCoder) { } constructor(coder: NSCoder) { }
@Suppress("OVERRIDE_DEPRECATION")
override fun initWithCoder(coder: NSCoder): String? = "zzz" override fun initWithCoder(coder: NSCoder): String? = "zzz"
} }
@@ -1,8 +1,11 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import kotlinx.cinterop.* import kotlinx.cinterop.*
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
class Zzz : NSAssertionHandler() { class Zzz : NSAssertionHandler() {
@OptIn(kotlinx.cinterop.BetaInteropApi::class)
@ObjCAction @ObjCAction
fun foo(x: NSObject, y: NSObject, z: NSObject) { } fun foo(x: NSObject, y: NSObject, z: NSObject) { }
} }
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import kotlinx.cinterop.* import kotlinx.cinterop.*
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,8 +1,4 @@
/* // FIR_IDENTICAL
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
// KT-50109 // KT-50109
class Foo { class Foo {
companion object : platform.darwin.NSObjectMeta() companion object : platform.darwin.NSObjectMeta()
@@ -1,7 +1,3 @@
/* // FIR_IDENTICAL
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
// KT-50109 // KT-50109
class Foo : platform.darwin.NSObjectMeta() class Foo : platform.darwin.NSObjectMeta()
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.darwin.* import platform.darwin.*
import platform.Foundation.* import platform.Foundation.*
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// WITH_PLATFORM_LIBS
import platform.posix.* import platform.posix.*
fun main() { fun main() {
@@ -1,4 +1,6 @@
// FIR_IDENTICAL
import kotlinx.cinterop.* import kotlinx.cinterop.*
import platform.posix.* import platform.posix.*
@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
fun foo() = stat(malloc(42u)!!.rawValue) fun foo() = stat(malloc(42u)!!.rawValue)
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
import kotlin.reflect.* import kotlin.reflect.*
@OptIn(kotlin.ExperimentalStdlibApi::class) @OptIn(kotlin.ExperimentalStdlibApi::class)
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
import kotlin.reflect.* import kotlin.reflect.*
@OptIn(kotlin.ExperimentalStdlibApi::class) @OptIn(kotlin.ExperimentalStdlibApi::class)
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.test.frontend.fir package org.jetbrains.kotlin.test.frontend.fir
import org.jetbrains.kotlin.backend.common.CommonKLibResolver
import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
@@ -12,6 +13,7 @@ import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
import org.jetbrains.kotlin.fir.session.FirNativeSessionFactory import org.jetbrains.kotlin.fir.session.FirNativeSessionFactory
import org.jetbrains.kotlin.ir.backend.js.resolverLogger
import org.jetbrains.kotlin.test.services.configuration.NativeEnvironmentConfigurator import org.jetbrains.kotlin.test.services.configuration.NativeEnvironmentConfigurator
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.model.TestModule
@@ -29,7 +31,11 @@ object TestFirNativeSessionFactory {
languageVersionSettings: LanguageVersionSettings, languageVersionSettings: LanguageVersionSettings,
registerExtraComponents: (FirSession) -> Unit = {}, registerExtraComponents: (FirSession) -> Unit = {},
): FirSession { ): FirSession {
val resolvedLibraries = resolveLibraries(configuration, getAllNativeDependenciesPaths(module, testServices)) val resolvedLibraries = CommonKLibResolver.resolve(
getAllNativeDependenciesPaths(module, testServices),
configuration.resolverLogger,
knownIrProviders = listOf("kotlin.native.cinterop"), // FIXME use KonanLibraryProperResolver instead, as in production.
).getFullResolvedList()
return FirNativeSessionFactory.createLibrarySession( return FirNativeSessionFactory.createLibrarySession(
mainModuleName, mainModuleName,
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.test.services.configuration package org.jetbrains.kotlin.test.services.configuration
import org.jetbrains.kotlin.konan.target.TargetSupportException
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives import org.jetbrains.kotlin.test.directives.ConfigurationDirectives
import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.EnvironmentConfigurator import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
@@ -25,6 +26,13 @@ class NativeEnvironmentConfigurator(testServices: TestServices) : EnvironmentCon
result += File("$nativeHome/klib/common/stdlib").absolutePath result += File("$nativeHome/klib/common/stdlib").absolutePath
} }
if (ConfigurationDirectives.WITH_PLATFORM_LIBS in module.directives) {
// Diagnostic tests are agnostic of native target, so host is enforced to be a target.
File("$nativeHome/klib/platform/${hostOsArch()}").listFiles()?.forEach {
result += it.absolutePath
}
}
testServices.runtimeClasspathProviders testServices.runtimeClasspathProviders
.flatMap { it.runtimeClassPaths(module) } .flatMap { it.runtimeClassPaths(module) }
.mapTo(result) { it.absolutePath } .mapTo(result) { it.absolutePath }
@@ -32,4 +40,27 @@ class NativeEnvironmentConfigurator(testServices: TestServices) : EnvironmentCon
return result return result
} }
} }
} }
private fun hostOsArch() = "${hostOs()}_${hostArch()}"
// `:native` module cannot be imported here, so functions are just copy/pasted here.
// `hostOs()` and `hostArch()` are similar to functions in org.jetbrains.kotlin.konan.target.HostManager
private fun hostOs(): String {
val javaOsName = System.getProperty("os.name")
return when {
javaOsName == "Mac OS X" -> "macos"
javaOsName == "Linux" -> "linux"
javaOsName.startsWith("Windows") -> "mingw"
else -> throw TargetSupportException("Unknown operating system: $javaOsName")
}
}
fun hostArch(): String =
when (val arch = System.getProperty("os.arch")) {
"x86_64" -> "x64"
"amd64" -> "x64"
"arm64" -> "arm64"
"aarch64" -> "arm64"
else -> throw TargetSupportException("Unknown hardware platform: $arch")
}
@@ -21,7 +21,7 @@ import java.util.regex.Pattern;
public class DiagnosticsNativeTestGenerated extends AbstractDiagnosticsNativeTest { public class DiagnosticsNativeTestGenerated extends AbstractDiagnosticsNativeTest {
@Test @Test
public void testAllFilesPresentInNativeTests() throws Exception { public void testAllFilesPresentInNativeTests() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true); KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true, "specialBackendChecks");
} }
@Test @Test
@@ -117,4 +117,472 @@ public class FirLightTreeOldFrontendNativeDiagnosticsTestGenerated extends Abstr
public void testTopLevelSingleton() throws Exception { public void testTopLevelSingleton() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/topLevelSingleton.kt"); runTest("compiler/testData/diagnostics/nativeTests/topLevelSingleton.kt");
} }
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class SpecialBackendChecks {
@Test
public void testAllFilesPresentInSpecialBackendChecks() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class CInterop {
@Test
public void testAllFilesPresentInCInterop() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t1.kt")
public void testT1() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t1.kt");
}
@Test
@TestMetadata("t10.kt")
public void testT10() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t10.kt");
}
@Test
@TestMetadata("t11.kt")
public void testT11() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t11.kt");
}
@Test
@TestMetadata("t12.kt")
public void testT12() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t12.kt");
}
@Test
@TestMetadata("t13.kt")
public void testT13() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t13.kt");
}
@Test
@TestMetadata("t14.kt")
public void testT14() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t14.kt");
}
@Test
@TestMetadata("t37.kt")
public void testT37() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t37.kt");
}
@Test
@TestMetadata("t38.kt")
public void testT38() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t38.kt");
}
@Test
@TestMetadata("t40.kt")
public void testT40() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t40.kt");
}
@Test
@TestMetadata("t41.kt")
public void testT41() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t41.kt");
}
@Test
@TestMetadata("t42.kt")
public void testT42() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t42.kt");
}
@Test
@TestMetadata("t43.kt")
public void testT43() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t43.kt");
}
@Test
@TestMetadata("t44.kt")
public void testT44() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t44.kt");
}
@Test
@TestMetadata("t45.kt")
public void testT45() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t45.kt");
}
@Test
@TestMetadata("t46.kt")
public void testT46() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t46.kt");
}
@Test
@TestMetadata("t47.kt")
public void testT47() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t47.kt");
}
@Test
@TestMetadata("t60.kt")
public void testT60() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t60.kt");
}
@Test
@TestMetadata("t63.kt")
public void testT63() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t63.kt");
}
@Test
@TestMetadata("t64.kt")
public void testT64() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t64.kt");
}
@Test
@TestMetadata("t8.kt")
public void testT8() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t8.kt");
}
@Test
@TestMetadata("t9.kt")
public void testT9() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t9.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class Concurrent {
@Test
public void testAllFilesPresentInConcurrent() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t48.kt")
public void testT48() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t48.kt");
}
@Test
@TestMetadata("t49.kt")
public void testT49() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t49.kt");
}
@Test
@TestMetadata("t50.kt")
public void testT50() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t50.kt");
}
@Test
@TestMetadata("t51.kt")
public void testT51() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t51.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class ImmutableBlobOf {
@Test
public void testAllFilesPresentInImmutableBlobOf() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t54.kt")
public void testT54() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t54.kt");
}
@Test
@TestMetadata("t55.kt")
public void testT55() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t55.kt");
}
@Test
@TestMetadata("t56.kt")
public void testT56() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t56.kt");
}
@Test
@TestMetadata("t57.kt")
public void testT57() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t57.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class NativeRef {
@Test
public void testAllFilesPresentInNativeRef() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t52.kt")
public void testT52() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef/t52.kt");
}
@Test
@TestMetadata("t53.kt")
public void testT53() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef/t53.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class ObjCInterop {
@Test
public void testAllFilesPresentInObjCInterop() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t15.kt")
public void testT15() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t15.kt");
}
@Test
@TestMetadata("t16.kt")
public void testT16() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t16.kt");
}
@Test
@TestMetadata("t17.kt")
public void testT17() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t17.kt");
}
@Test
@TestMetadata("t18.kt")
public void testT18() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t18.kt");
}
@Test
@TestMetadata("t2.kt")
public void testT2() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t2.kt");
}
@Test
@TestMetadata("t20.kt")
public void testT20() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t20.kt");
}
@Test
@TestMetadata("t21.kt")
public void testT21() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t21.kt");
}
@Test
@TestMetadata("t22.kt")
public void testT22() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t22.kt");
}
@Test
@TestMetadata("t23.kt")
public void testT23() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t23.kt");
}
@Test
@TestMetadata("t24.kt")
public void testT24() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t24.kt");
}
@Test
@TestMetadata("t25.kt")
public void testT25() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t25.kt");
}
@Test
@TestMetadata("t26.kt")
public void testT26() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t26.kt");
}
@Test
@TestMetadata("t27.kt")
public void testT27() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t27.kt");
}
@Test
@TestMetadata("t28.kt")
public void testT28() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t28.kt");
}
@Test
@TestMetadata("t29.kt")
public void testT29() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t29.kt");
}
@Test
@TestMetadata("t30.kt")
public void testT30() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t30.kt");
}
@Test
@TestMetadata("t31.kt")
public void testT31() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t31.kt");
}
@Test
@TestMetadata("t32.kt")
public void testT32() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t32.kt");
}
@Test
@TestMetadata("t33.kt")
public void testT33() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t33.kt");
}
@Test
@TestMetadata("t34.kt")
public void testT34() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t34.kt");
}
@Test
@TestMetadata("t35.kt")
public void testT35() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t35.kt");
}
@Test
@TestMetadata("t4.kt")
public void testT4() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t4.kt");
}
@Test
@TestMetadata("t5.kt")
public void testT5() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t5.kt");
}
@Test
@TestMetadata("t6.kt")
public void testT6() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t6.kt");
}
@Test
@TestMetadata("t61.kt")
public void testT61() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t61.kt");
}
@Test
@TestMetadata("t62.kt")
public void testT62() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t62.kt");
}
@Test
@TestMetadata("t7.kt")
public void testT7() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t7.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class Posix {
@Test
public void testAllFilesPresentInPosix() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t3.kt")
public void testT3() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix/t3.kt");
}
@Test
@TestMetadata("t36.kt")
public void testT36() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix/t36.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class Reflect {
@Test
public void testAllFilesPresentInReflect() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t58.kt")
public void testT58() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect/t58.kt");
}
@Test
@TestMetadata("t59.kt")
public void testT59() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect/t59.kt");
}
}
}
} }
@@ -117,4 +117,472 @@ public class FirPsiOldFrontendNativeDiagnosticsTestGenerated extends AbstractFir
public void testTopLevelSingleton() throws Exception { public void testTopLevelSingleton() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/topLevelSingleton.kt"); runTest("compiler/testData/diagnostics/nativeTests/topLevelSingleton.kt");
} }
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class SpecialBackendChecks {
@Test
public void testAllFilesPresentInSpecialBackendChecks() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class CInterop {
@Test
public void testAllFilesPresentInCInterop() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t1.kt")
public void testT1() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t1.kt");
}
@Test
@TestMetadata("t10.kt")
public void testT10() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t10.kt");
}
@Test
@TestMetadata("t11.kt")
public void testT11() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t11.kt");
}
@Test
@TestMetadata("t12.kt")
public void testT12() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t12.kt");
}
@Test
@TestMetadata("t13.kt")
public void testT13() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t13.kt");
}
@Test
@TestMetadata("t14.kt")
public void testT14() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t14.kt");
}
@Test
@TestMetadata("t37.kt")
public void testT37() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t37.kt");
}
@Test
@TestMetadata("t38.kt")
public void testT38() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t38.kt");
}
@Test
@TestMetadata("t40.kt")
public void testT40() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t40.kt");
}
@Test
@TestMetadata("t41.kt")
public void testT41() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t41.kt");
}
@Test
@TestMetadata("t42.kt")
public void testT42() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t42.kt");
}
@Test
@TestMetadata("t43.kt")
public void testT43() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t43.kt");
}
@Test
@TestMetadata("t44.kt")
public void testT44() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t44.kt");
}
@Test
@TestMetadata("t45.kt")
public void testT45() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t45.kt");
}
@Test
@TestMetadata("t46.kt")
public void testT46() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t46.kt");
}
@Test
@TestMetadata("t47.kt")
public void testT47() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t47.kt");
}
@Test
@TestMetadata("t60.kt")
public void testT60() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t60.kt");
}
@Test
@TestMetadata("t63.kt")
public void testT63() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t63.kt");
}
@Test
@TestMetadata("t64.kt")
public void testT64() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t64.kt");
}
@Test
@TestMetadata("t8.kt")
public void testT8() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t8.kt");
}
@Test
@TestMetadata("t9.kt")
public void testT9() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/cInterop/t9.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class Concurrent {
@Test
public void testAllFilesPresentInConcurrent() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t48.kt")
public void testT48() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t48.kt");
}
@Test
@TestMetadata("t49.kt")
public void testT49() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t49.kt");
}
@Test
@TestMetadata("t50.kt")
public void testT50() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t50.kt");
}
@Test
@TestMetadata("t51.kt")
public void testT51() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/concurrent/t51.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class ImmutableBlobOf {
@Test
public void testAllFilesPresentInImmutableBlobOf() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t54.kt")
public void testT54() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t54.kt");
}
@Test
@TestMetadata("t55.kt")
public void testT55() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t55.kt");
}
@Test
@TestMetadata("t56.kt")
public void testT56() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t56.kt");
}
@Test
@TestMetadata("t57.kt")
public void testT57() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/immutableBlobOf/t57.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class NativeRef {
@Test
public void testAllFilesPresentInNativeRef() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t52.kt")
public void testT52() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef/t52.kt");
}
@Test
@TestMetadata("t53.kt")
public void testT53() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/nativeRef/t53.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class ObjCInterop {
@Test
public void testAllFilesPresentInObjCInterop() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t15.kt")
public void testT15() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t15.kt");
}
@Test
@TestMetadata("t16.kt")
public void testT16() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t16.kt");
}
@Test
@TestMetadata("t17.kt")
public void testT17() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t17.kt");
}
@Test
@TestMetadata("t18.kt")
public void testT18() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t18.kt");
}
@Test
@TestMetadata("t2.kt")
public void testT2() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t2.kt");
}
@Test
@TestMetadata("t20.kt")
public void testT20() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t20.kt");
}
@Test
@TestMetadata("t21.kt")
public void testT21() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t21.kt");
}
@Test
@TestMetadata("t22.kt")
public void testT22() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t22.kt");
}
@Test
@TestMetadata("t23.kt")
public void testT23() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t23.kt");
}
@Test
@TestMetadata("t24.kt")
public void testT24() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t24.kt");
}
@Test
@TestMetadata("t25.kt")
public void testT25() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t25.kt");
}
@Test
@TestMetadata("t26.kt")
public void testT26() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t26.kt");
}
@Test
@TestMetadata("t27.kt")
public void testT27() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t27.kt");
}
@Test
@TestMetadata("t28.kt")
public void testT28() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t28.kt");
}
@Test
@TestMetadata("t29.kt")
public void testT29() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t29.kt");
}
@Test
@TestMetadata("t30.kt")
public void testT30() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t30.kt");
}
@Test
@TestMetadata("t31.kt")
public void testT31() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t31.kt");
}
@Test
@TestMetadata("t32.kt")
public void testT32() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t32.kt");
}
@Test
@TestMetadata("t33.kt")
public void testT33() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t33.kt");
}
@Test
@TestMetadata("t34.kt")
public void testT34() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t34.kt");
}
@Test
@TestMetadata("t35.kt")
public void testT35() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t35.kt");
}
@Test
@TestMetadata("t4.kt")
public void testT4() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t4.kt");
}
@Test
@TestMetadata("t5.kt")
public void testT5() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t5.kt");
}
@Test
@TestMetadata("t6.kt")
public void testT6() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t6.kt");
}
@Test
@TestMetadata("t61.kt")
public void testT61() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t61.kt");
}
@Test
@TestMetadata("t62.kt")
public void testT62() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t62.kt");
}
@Test
@TestMetadata("t7.kt")
public void testT7() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/objCInterop/t7.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class Posix {
@Test
public void testAllFilesPresentInPosix() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t3.kt")
public void testT3() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix/t3.kt");
}
@Test
@TestMetadata("t36.kt")
public void testT36() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/posix/t36.kt");
}
}
@Nested
@TestMetadata("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
public class Reflect {
@Test
public void testAllFilesPresentInReflect() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
}
@Test
@TestMetadata("t58.kt")
public void testT58() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect/t58.kt");
}
@Test
@TestMetadata("t59.kt")
public void testT59() throws Exception {
runTest("compiler/testData/diagnostics/nativeTests/specialBackendChecks/reflect/t59.kt");
}
}
}
} }
@@ -321,7 +321,13 @@ fun main() {
// New frontend test infrastructure tests // New frontend test infrastructure tests
testGroup(testsRoot = "native/native.tests/tests-gen", testDataRoot = "compiler/testData") { testGroup(testsRoot = "native/native.tests/tests-gen", testDataRoot = "compiler/testData") {
testClass<AbstractDiagnosticsNativeTest> { testClass<AbstractDiagnosticsNativeTest> {
model("diagnostics/nativeTests", excludedPattern = CUSTOM_TEST_DATA_EXTENSION_PATTERN) model(
"diagnostics/nativeTests",
excludedPattern = CUSTOM_TEST_DATA_EXTENSION_PATTERN,
// There are no special native-specific diagnostics in K1 frontend.
// These checks happen in native backend instead, in SpecialBackendChecks class.
excludeDirs = listOf("specialBackendChecks"),
)
} }
testClass<AbstractFirPsiNativeDiagnosticsTest>( testClass<AbstractFirPsiNativeDiagnosticsTest>(
@@ -5,13 +5,16 @@
package org.jetbrains.kotlin.konan.test.diagnostics package org.jetbrains.kotlin.konan.test.diagnostics
import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.platform.konan.NativePlatforms import org.jetbrains.kotlin.platform.konan.NativePlatforms
import org.jetbrains.kotlin.test.Constructor import org.jetbrains.kotlin.test.Constructor
import org.jetbrains.kotlin.test.FirParser import org.jetbrains.kotlin.test.FirParser
import org.jetbrains.kotlin.test.InTextDirectivesUtils
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.builders.classicFrontendHandlersStep import org.jetbrains.kotlin.test.builders.classicFrontendHandlersStep
import org.jetbrains.kotlin.test.builders.firHandlersStep import org.jetbrains.kotlin.test.builders.firHandlersStep
import org.jetbrains.kotlin.test.directives.* import org.jetbrains.kotlin.test.directives.*
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_PLATFORM_LIBS
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler
@@ -29,6 +32,8 @@ import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigu
import org.jetbrains.kotlin.test.services.configuration.NativeEnvironmentConfigurator import org.jetbrains.kotlin.test.services.configuration.NativeEnvironmentConfigurator
import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsSourceFilesProvider import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsSourceFilesProvider
import org.jetbrains.kotlin.test.services.sourceProviders.CoroutineHelpersSourceFilesProvider import org.jetbrains.kotlin.test.services.sourceProviders.CoroutineHelpersSourceFilesProvider
import org.junit.jupiter.api.Assumptions
import java.io.File
abstract class AbstractDiagnosticsNativeTestBase<R : ResultingArtifact.FrontendOutput<R>> : AbstractKotlinCompilerTest() { abstract class AbstractDiagnosticsNativeTestBase<R : ResultingArtifact.FrontendOutput<R>> : AbstractKotlinCompilerTest() {
abstract val targetFrontend: FrontendKind<R> abstract val targetFrontend: FrontendKind<R>
@@ -44,6 +49,17 @@ abstract class AbstractDiagnosticsNativeTestBase<R : ResultingArtifact.FrontendO
baseNativeDiagnosticTestConfiguration(frontend) baseNativeDiagnosticTestConfiguration(frontend)
handlersSetup(this) handlersSetup(this)
} }
override fun runTest(filePath: String) {
mutePlatformTestIfNecessary(filePath)
super.runTest(filePath)
}
private fun mutePlatformTestIfNecessary(filePath: String) {
if(HostManager.hostIsMac) return
if (InTextDirectivesUtils.isDirectiveDefined(File(filePath).readText(), WITH_PLATFORM_LIBS.name))
Assumptions.abort<Nothing>("Diagnostic tests using platform libs are not supported at non-Mac hosts. Test source: $filePath")
}
} }
fun <R : ResultingArtifact.FrontendOutput<R>> TestConfigurationBuilder.baseNativeDiagnosticTestConfiguration( fun <R : ResultingArtifact.FrontendOutput<R>> TestConfigurationBuilder.baseNativeDiagnosticTestConfiguration(