From 7eb882ed270d761bbfdfa55938d352eae33674f9 Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Mon, 20 Mar 2017 21:10:39 +0300 Subject: [PATCH] KJS: switch sourcemap tests to generated using BasicBoxTest --- .../kotlin/generators/tests/GenerateTests.kt | 4 ++ .../jetbrains/kotlin/js/test/BasicBoxTest.kt | 5 +- .../kotlin/js/test/SourceMapTest.java | 51 ----------------- ...SourceMapGenerationSmokeTestGenerated.java | 56 +++++++++++++++++++ .../abstractClassesForGeneratedTests.kt | 8 ++- .../sourcemap/{cases => }/binaryOperation.kt | 0 .../{cases => }/emptyIfInsideInlineLambda.kt | 0 .../{cases => }/methodCallInMethod.kt | 0 8 files changed, 70 insertions(+), 54 deletions(-) delete mode 100644 js/js.tests/test/org/jetbrains/kotlin/js/test/SourceMapTest.java create mode 100644 js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/SourceMapGenerationSmokeTestGenerated.java rename js/js.translator/testData/sourcemap/{cases => }/binaryOperation.kt (100%) rename js/js.translator/testData/sourcemap/{cases => }/emptyIfInsideInlineLambda.kt (100%) rename js/js.translator/testData/sourcemap/{cases => }/methodCallInMethod.kt (100%) diff --git a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index 77e26f100e6..26783685d23 100755 --- a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -1275,6 +1275,10 @@ fun main(args: Array) { testClass { model("box/", pattern = "^([^_](.+))\\.kt$", targetBackend = TargetBackend.JS) } + + testClass { + model("sourcemap/", pattern = "^([^_](.+))\\.kt$", targetBackend = TargetBackend.JS) + } } testGroup("js/js.tests/test", "compiler/testData") { diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt index 31631a73d24..9cd99964f90 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt @@ -62,7 +62,8 @@ import java.util.regex.Pattern abstract class BasicBoxTest( private val pathToTestDir: String, private val pathToOutputDir: String, - private val typedArraysEnabled: Boolean = false + private val typedArraysEnabled: Boolean = false, + private val generateSourceMap: Boolean = false ) : KotlinTestWithEnvironment() { private val COMMON_FILES_NAME = "_common" private val COMMON_FILES_DIR = "_commonFiles/" @@ -283,7 +284,7 @@ abstract class BasicBoxTest( configuration.put(JSConfigurationKeys.MODULE_KIND, module.moduleKind) configuration.put(JSConfigurationKeys.TARGET, EcmaVersion.v5) - //configuration.put(JSConfigurationKeys.SOURCE_MAP, shouldGenerateSourceMap()) + configuration.put(JSConfigurationKeys.SOURCE_MAP, generateSourceMap) configuration.put(JSConfigurationKeys.META_INFO, multiModule) if (typedArraysEnabled) { diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/SourceMapTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/SourceMapTest.java deleted file mode 100644 index a1e855811db..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/SourceMapTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test; - -import junit.framework.Test; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.js.test.semantics.TranslatorTestCaseBuilder; - -@SuppressWarnings("JUnitTestCaseWithNoTests") -public final class SourceMapTest extends SingleFileTranslationTest { - @NotNull - private final String filename; - - @SuppressWarnings("JUnitTestCaseWithNonTrivialConstructors") - public SourceMapTest(@NotNull String filename) { - super("sourcemap/"); - this.filename = filename; - } - - @Override - protected boolean shouldGenerateSourceMap() { - return true; - } - - @Override - public void runTest() throws Exception { - checkFooBoxIsOk(filename); - } - - public static Test suite() throws Exception { - return TranslatorTestCaseBuilder.suiteForDirectory(TEST_DATA_DIR_PATH + "sourcemap/cases/", filename -> { - SourceMapTest examplesTest = new SourceMapTest(filename); - examplesTest.setName(filename); - return examplesTest; - }); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/SourceMapGenerationSmokeTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/SourceMapGenerationSmokeTestGenerated.java new file mode 100644 index 00000000000..d9470ebf8c7 --- /dev/null +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/SourceMapGenerationSmokeTestGenerated.java @@ -0,0 +1,56 @@ +/* + * Copyright 2010-2017 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.js.test.semantics; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; +import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.TargetBackend; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.runner.RunWith; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("js/js.translator/testData/sourcemap") +@TestDataPath("$PROJECT_ROOT") +@RunWith(JUnit3RunnerWithInners.class) +public class SourceMapGenerationSmokeTestGenerated extends AbstractSourceMapGenerationSmokeTest { + public void testAllFilesPresentInSourcemap() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/sourcemap"), Pattern.compile("^([^_](.+))\\.kt$"), TargetBackend.JS, true); + } + + @TestMetadata("binaryOperation.kt") + public void testBinaryOperation() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/sourcemap/binaryOperation.kt"); + doTest(fileName); + } + + @TestMetadata("emptyIfInsideInlineLambda.kt") + public void testEmptyIfInsideInlineLambda() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/sourcemap/emptyIfInsideInlineLambda.kt"); + doTest(fileName); + } + + @TestMetadata("methodCallInMethod.kt") + public void testMethodCallInMethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/sourcemap/methodCallInMethod.kt"); + doTest(fileName); + } +} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/abstractClassesForGeneratedTests.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/abstractClassesForGeneratedTests.kt index f804f10aaec..fabe068ebca 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/abstractClassesForGeneratedTests.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/abstractClassesForGeneratedTests.kt @@ -37,7 +37,7 @@ abstract class AbstractCallableReferenceInlineTests : BorrowedInlineTest("callab abstract class AbstractEnumValuesInlineTests : BorrowedInlineTest("enum/") -abstract class AbstractBoxJsTest() : BasicBoxTest( +abstract class AbstractBoxJsTest : BasicBoxTest( BasicBoxTest.TEST_DATA_DIR_PATH + "box/", BasicBoxTest.TEST_DATA_DIR_PATH + "out/box/" ) @@ -51,4 +51,10 @@ abstract class AbstractJsTypedArraysBoxTest : BasicBoxTest( "compiler/testData/codegen/box/arrays/", BasicBoxTest.TEST_DATA_DIR_PATH + "out/codegen/box/arrays-typedarrays/", typedArraysEnabled = true +) + +abstract class AbstractSourceMapGenerationSmokeTest : BasicBoxTest( + BasicBoxTest.TEST_DATA_DIR_PATH + "sourcemap/", + "${BasicBoxTest.TEST_DATA_DIR_PATH}/out/sourcemap/", + generateSourceMap = true ) \ No newline at end of file diff --git a/js/js.translator/testData/sourcemap/cases/binaryOperation.kt b/js/js.translator/testData/sourcemap/binaryOperation.kt similarity index 100% rename from js/js.translator/testData/sourcemap/cases/binaryOperation.kt rename to js/js.translator/testData/sourcemap/binaryOperation.kt diff --git a/js/js.translator/testData/sourcemap/cases/emptyIfInsideInlineLambda.kt b/js/js.translator/testData/sourcemap/emptyIfInsideInlineLambda.kt similarity index 100% rename from js/js.translator/testData/sourcemap/cases/emptyIfInsideInlineLambda.kt rename to js/js.translator/testData/sourcemap/emptyIfInsideInlineLambda.kt diff --git a/js/js.translator/testData/sourcemap/cases/methodCallInMethod.kt b/js/js.translator/testData/sourcemap/methodCallInMethod.kt similarity index 100% rename from js/js.translator/testData/sourcemap/cases/methodCallInMethod.kt rename to js/js.translator/testData/sourcemap/methodCallInMethod.kt