[JS IR BE] hashCode, toString, number conversion support

This commit is contained in:
Svyatoslav Kuzmich
2018-06-13 15:54:34 +03:00
parent a7a695f203
commit 83f8cfaa66
73 changed files with 602 additions and 108 deletions
@@ -545,7 +545,11 @@ abstract class BasicBoxTest(
val psiManager = PsiManager.getInstance(project)
val fileSystem = VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.FILE_PROTOCOL)
return psiManager.findFile(fileSystem.findFileByPath(fileName)!!) as KtFile
val file = fileSystem.findFileByPath(fileName)
if (file == null)
error("File not found: ${fileName}")
return psiManager.findFile(file) as KtFile
}
private fun createPsiFiles(fileNames: List<String>): List<KtFile> = fileNames.map(this::createPsiFile)
@@ -45,6 +45,9 @@ abstract class BasicIrBoxTest(
) {
val runtime = listOf(
"libraries/stdlib/js/src/kotlin/core.kt",
"libraries/stdlib/js/irRuntime/core.kt",
"libraries/stdlib/js/irRuntime/numberConversion.kt",
"libraries/stdlib/js/irRuntime/compareTo.kt",
"libraries/stdlib/js/irRuntime/annotations.kt",
"libraries/stdlib/js/irRuntime/DefaultConstructorMarker.kt",
"libraries/stdlib/js/irRuntime/exceptions.kt",
@@ -47,6 +47,29 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest {
}
}
@TestMetadata("js/js.translator/testData/box/builtins")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class Builtins extends AbstractBoxJsTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest0(this::doTest, TargetBackend.JS, testDataFilePath);
}
public void testAllFilesPresentInBuiltins() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/builtins"), Pattern.compile("^([^_](.+))\\.kt$"), TargetBackend.JS, true);
}
@TestMetadata("hashCode.kt")
public void testHashCode() throws Exception {
runTest("js/js.translator/testData/box/builtins/hashCode.kt");
}
@TestMetadata("toString.kt")
public void testToString() throws Exception {
runTest("js/js.translator/testData/box/builtins/toString.kt");
}
}
@TestMetadata("js/js.translator/testData/box/callableReference")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@@ -47,6 +47,29 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest {
}
}
@TestMetadata("js/js.translator/testData/box/builtins")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class Builtins extends AbstractIrBoxJsTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest0(this::doTest, TargetBackend.JS_IR, testDataFilePath);
}
public void testAllFilesPresentInBuiltins() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/builtins"), Pattern.compile("^([^_](.+))\\.kt$"), TargetBackend.JS_IR, true);
}
@TestMetadata("hashCode.kt")
public void testHashCode() throws Exception {
runTest("js/js.translator/testData/box/builtins/hashCode.kt");
}
@TestMetadata("toString.kt")
public void testToString() throws Exception {
runTest("js/js.translator/testData/box/builtins/toString.kt");
}
}
@TestMetadata("js/js.translator/testData/box/callableReference")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)