From 239943867b1aaa8d67d6f22e6c2cde8d23a03a19 Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Thu, 10 Aug 2017 00:34:02 +0300 Subject: [PATCH] Add JS specific proto comparison test --- .../kotlin/generators/tests/GenerateTests.kt | 1 + .../JsProtoComparisonTestGenerated.java | 15 +++++++++++++++ .../testData/comparison/jsOnly/externals/new.kt | 15 +++++++++++++++ .../testData/comparison/jsOnly/externals/old.kt | 15 +++++++++++++++ .../comparison/jsOnly/externals/result.out | 10 ++++++++++ 5 files changed, 56 insertions(+) create mode 100644 jps-plugin/testData/comparison/jsOnly/externals/new.kt create mode 100644 jps-plugin/testData/comparison/jsOnly/externals/old.kt create mode 100644 jps-plugin/testData/comparison/jsOnly/externals/result.out diff --git a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index 843bd1169ca..411dfa1895d 100755 --- a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -1232,6 +1232,7 @@ fun main(args: Array) { testClass { commonProtoComparisonTests() + model("comparison/jsOnly", extension = null, excludeParentDirs = true) } } diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/incremental/JsProtoComparisonTestGenerated.java b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/incremental/JsProtoComparisonTestGenerated.java index 7274b9c9438..c234417aff9 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/incremental/JsProtoComparisonTestGenerated.java +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/incremental/JsProtoComparisonTestGenerated.java @@ -272,4 +272,19 @@ public class JsProtoComparisonTestGenerated extends AbstractJsProtoComparisonTes doTest(fileName); } } + + @TestMetadata("jps-plugin/testData/comparison/jsOnly") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class JsOnly extends AbstractJsProtoComparisonTest { + public void testAllFilesPresentInJsOnly() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/comparison/jsOnly"), Pattern.compile("^([^\\.]+)$"), TargetBackend.ANY, true); + } + + @TestMetadata("externals") + public void testExternals() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/comparison/jsOnly/externals/"); + doTest(fileName); + } + } } diff --git a/jps-plugin/testData/comparison/jsOnly/externals/new.kt b/jps-plugin/testData/comparison/jsOnly/externals/new.kt new file mode 100644 index 00000000000..feddad90bfc --- /dev/null +++ b/jps-plugin/testData/comparison/jsOnly/externals/new.kt @@ -0,0 +1,15 @@ +package test + +external class ExternalClass { + fun addedExternalFun() + val addedExternalVal: Int +} + +external class ClassBecameExternal +class ClassBecameNonExternal + +external fun addedExternalFun() +external val addedExternalVal: Int + +external fun funBecameExternal() +fun funBecameNonExternal() {} \ No newline at end of file diff --git a/jps-plugin/testData/comparison/jsOnly/externals/old.kt b/jps-plugin/testData/comparison/jsOnly/externals/old.kt new file mode 100644 index 00000000000..9a729477c7b --- /dev/null +++ b/jps-plugin/testData/comparison/jsOnly/externals/old.kt @@ -0,0 +1,15 @@ +package test + +external class ExternalClass { + fun removedExternalFun() + val removedExternalVal: Int +} + +class ClassBecameExternal +external class ClassBecameNonExternal + +external fun removedExternalFun() +external val removedExternalVal: Int + +fun funBecameExternal() {} +external fun funBecameNonExternal() diff --git a/jps-plugin/testData/comparison/jsOnly/externals/result.out b/jps-plugin/testData/comparison/jsOnly/externals/result.out new file mode 100644 index 00000000000..756d19153db --- /dev/null +++ b/jps-plugin/testData/comparison/jsOnly/externals/result.out @@ -0,0 +1,10 @@ +PROTO DIFFERENCE in test/ClassBecameExternal: FLAGS +CHANGES in test/ClassBecameExternal: CLASS_SIGNATURE +PROTO DIFFERENCE in test/ClassBecameNonExternal: FLAGS +CHANGES in test/ClassBecameNonExternal: CLASS_SIGNATURE +PROTO DIFFERENCE in test/ExternalClass: FUNCTION_LIST, PROPERTY_LIST +CHANGES in test/ExternalClass: MEMBERS + [addedExternalFun, addedExternalVal, removedExternalFun, removedExternalVal] +PROTO DIFFERENCE in test/MainKt: FUNCTION_LIST, PROPERTY_LIST +CHANGES in test/MainKt: MEMBERS + [addedExternalFun, addedExternalVal, funBecameExternal, funBecameNonExternal, removedExternalFun, removedExternalVal]