From 023306b1b36c7cd777ec369fca403a72967d5f41 Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Fri, 26 Apr 2019 11:57:51 +0300 Subject: [PATCH] [JS IR BE] Add tests for main function --- .../ir/semantics/IrBoxJsTestGenerated.java | 10 ++++++++ .../js/test/semantics/BoxJsTestGenerated.java | 10 ++++++++ .../testData/box/main/differentMains.kt | 23 +++++++++++++++++++ .../testData/box/main/twoMains.kt | 18 +++++++++++++++ 4 files changed, 61 insertions(+) create mode 100644 js/js.translator/testData/box/main/differentMains.kt create mode 100644 js/js.translator/testData/box/main/twoMains.kt diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java index ab71c5eb4d1..d7334730dd3 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java @@ -5238,6 +5238,11 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest { KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/main"), Pattern.compile("^([^_](.+))\\.kt$"), TargetBackend.JS_IR, true); } + @TestMetadata("differentMains.kt") + public void testDifferentMains() throws Exception { + runTest("js/js.translator/testData/box/main/differentMains.kt"); + } + @TestMetadata("incremental.kt") public void testIncremental() throws Exception { runTest("js/js.translator/testData/box/main/incremental.kt"); @@ -5267,6 +5272,11 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest { public void testSuspendMainThrows() throws Exception { runTest("js/js.translator/testData/box/main/suspendMainThrows.kt"); } + + @TestMetadata("twoMains.kt") + public void testTwoMains() throws Exception { + runTest("js/js.translator/testData/box/main/twoMains.kt"); + } } @TestMetadata("js/js.translator/testData/box/multiFile") diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java index 3e16971caca..fbcacfa9d56 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java @@ -5243,6 +5243,11 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/main"), Pattern.compile("^([^_](.+))\\.kt$"), TargetBackend.JS, true); } + @TestMetadata("differentMains.kt") + public void testDifferentMains() throws Exception { + runTest("js/js.translator/testData/box/main/differentMains.kt"); + } + @TestMetadata("incremental.kt") public void testIncremental() throws Exception { runTest("js/js.translator/testData/box/main/incremental.kt"); @@ -5272,6 +5277,11 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { public void testSuspendMainThrows() throws Exception { runTest("js/js.translator/testData/box/main/suspendMainThrows.kt"); } + + @TestMetadata("twoMains.kt") + public void testTwoMains() throws Exception { + runTest("js/js.translator/testData/box/main/twoMains.kt"); + } } @TestMetadata("js/js.translator/testData/box/multiFile") diff --git a/js/js.translator/testData/box/main/differentMains.kt b/js/js.translator/testData/box/main/differentMains.kt new file mode 100644 index 00000000000..b51d3005945 --- /dev/null +++ b/js/js.translator/testData/box/main/differentMains.kt @@ -0,0 +1,23 @@ +// EXPECTED_REACHABLE_NODES: 1281 +// CALL_MAIN + +var ok: String = "OK" + +fun main(args: Array) { + ok += "Fail Int" +} + +fun main(args: Array) { + ok += "Fail String?" +} + +fun main(args: Array) { + ok += "Fail IN" +} + +fun main(args: Array): Unit? { + ok += "Fail return Unit?" + return Unit +} + +fun box() = ok \ No newline at end of file diff --git a/js/js.translator/testData/box/main/twoMains.kt b/js/js.translator/testData/box/main/twoMains.kt new file mode 100644 index 00000000000..74fe0a2e240 --- /dev/null +++ b/js/js.translator/testData/box/main/twoMains.kt @@ -0,0 +1,18 @@ +// EXPECTED_REACHABLE_NODES: 1281 +// CALL_MAIN + +var o: String = "fail O" +var k: String = "K" + +fun main() { + k = "fail K" +} + +fun main(args: Array) { + assertEquals(1, args.size) + assertEquals("testArg", args[0]) + + o = "O" +} + +fun box() = o + k \ No newline at end of file