JS backend: added jsCode test cases

This commit is contained in:
Alexey Tsvetkov
2014-12-09 13:46:01 +03:00
parent 97bbcab77d
commit c3f67c54bd
32 changed files with 657 additions and 0 deletions
@@ -0,0 +1,3 @@
$TESTDATA_DIR$/jsCodeError.kt
-output
$TEMP_DIR$/out.js
+2
View File
@@ -0,0 +1,2 @@
fun f1(): Unit = js("var = 10;")
fun f2(): Unit = js("""var = 10;""")
+3
View File
@@ -0,0 +1,3 @@
ERROR: compiler/testData/cli/js/jsCodeError.kt: (1, 25) JavaScript: missing variable name
ERROR: compiler/testData/cli/js/jsCodeError.kt: (2, 27) JavaScript: missing variable name
COMPILATION_ERROR
@@ -0,0 +1,3 @@
$TESTDATA_DIR$/jsCodeNotLiteralError.kt
-output
$TEMP_DIR$/out.js
@@ -0,0 +1,3 @@
val s = "1 + 1;"
fun two(): Int = js(s)
fun three(): Int = js("1" + "+ 2;")
@@ -0,0 +1,3 @@
ERROR: compiler/testData/cli/js/jsCodeNotLiteralError.kt: (2, 18) Argument must be string literal
ERROR: compiler/testData/cli/js/jsCodeNotLiteralError.kt: (3, 20) Argument must be string literal
COMPILATION_ERROR
@@ -0,0 +1,3 @@
$TESTDATA_DIR$/jsCodeWarning.kt
-output
$TEMP_DIR$/out.js
@@ -0,0 +1 @@
fun main(args: Array<String>): Unit = js("var a = 08;")
@@ -0,0 +1,2 @@
WARNING: compiler/testData/cli/js/jsCodeWarning.kt: (1, 50) JavaScript: illegal octal literal digit 8; interpreting it as a decimal digit
OK
@@ -156,6 +156,24 @@ public class KotlincExecutableTestGenerated extends AbstractKotlincExecutableTes
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/cli/js"), Pattern.compile("^(.+)\\.args$"), false);
}
@TestMetadata("jsCodeError.args")
public void testJsCodeError() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/cli/js/jsCodeError.args");
doJsTest(fileName);
}
@TestMetadata("jsCodeNotLiteralError.args")
public void testJsCodeNotLiteralError() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/cli/js/jsCodeNotLiteralError.args");
doJsTest(fileName);
}
@TestMetadata("jsCodeWarning.args")
public void testJsCodeWarning() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/cli/js/jsCodeWarning.args");
doJsTest(fileName);
}
@TestMetadata("jsExtraHelp.args")
public void testJsExtraHelp() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/cli/js/jsExtraHelp.args");
@@ -90,4 +90,19 @@ public class K2JsCliTest extends CliBaseTest {
Assert.assertFalse(new File(tmpdir.getTmpDir(), "out.js").isFile());
}
@Test
public void jsCodeError() throws Exception {
executeCompilerCompareOutputJS();
}
@Test
public void jsCodeWarning() throws Exception {
executeCompilerCompareOutputJS();
}
@Test
public void jsCodeNotLiteralError() throws Exception {
executeCompilerCompareOutputJS();
}
}