From 826b9d935df9b42a72006e551f6acdf19d1d28eb Mon Sep 17 00:00:00 2001 From: Anton Bannykh Date: Wed, 13 Mar 2019 23:32:28 +0300 Subject: [PATCH] JS/JS IR: split testing tasks for the two backends Run jsTest for current backend, and jsIrTest for the JS-IR backend tests --- js/js.tests/build.gradle.kts | 39 ++++++++++++------ .../generators/tests/GenerateJsTests.kt | 1 + .../semantics/IrBoxJsTestGenerated.java | 2 +- ...CallableReferenceInlineTestsGenerated.java | 2 +- .../IrEnumValuesInlineTestsGenerated.java | 2 +- .../IrInlineDefaultValuesTestsGenerated.java | 2 +- .../IrInlineSuspendTestsGenerated.java | 2 +- .../IrJsCodegenBoxTestGenerated.java | 2 +- .../IrJsInlineContractsTestsGenerated.java | 2 +- .../semantics/IrNoInlineTestsGenerated.java | 2 +- .../IrNonLocalReturnsTestGenerated.java | 2 +- ...PropertyAccessorsInlineTestsGenerated.java | 2 +- .../abstractClassesForGeneratedIrTests.kt | 41 +++++++++++++++++++ .../abstractClassesForGeneratedTests.kt | 34 +-------------- 14 files changed, 80 insertions(+), 55 deletions(-) rename js/js.tests/test/org/jetbrains/kotlin/js/test/{ => ir}/semantics/IrBoxJsTestGenerated.java (99%) rename js/js.tests/test/org/jetbrains/kotlin/js/test/{ => ir}/semantics/IrCallableReferenceInlineTestsGenerated.java (99%) rename js/js.tests/test/org/jetbrains/kotlin/js/test/{ => ir}/semantics/IrEnumValuesInlineTestsGenerated.java (98%) rename js/js.tests/test/org/jetbrains/kotlin/js/test/{ => ir}/semantics/IrInlineDefaultValuesTestsGenerated.java (99%) rename js/js.tests/test/org/jetbrains/kotlin/js/test/{ => ir}/semantics/IrInlineSuspendTestsGenerated.java (99%) rename js/js.tests/test/org/jetbrains/kotlin/js/test/{ => ir}/semantics/IrJsCodegenBoxTestGenerated.java (99%) rename js/js.tests/test/org/jetbrains/kotlin/js/test/{ => ir}/semantics/IrJsInlineContractsTestsGenerated.java (98%) rename js/js.tests/test/org/jetbrains/kotlin/js/test/{ => ir}/semantics/IrNoInlineTestsGenerated.java (98%) rename js/js.tests/test/org/jetbrains/kotlin/js/test/{ => ir}/semantics/IrNonLocalReturnsTestGenerated.java (99%) rename js/js.tests/test/org/jetbrains/kotlin/js/test/{ => ir}/semantics/IrPropertyAccessorsInlineTestsGenerated.java (98%) create mode 100644 js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/abstractClassesForGeneratedIrTests.kt diff --git a/js/js.tests/build.gradle.kts b/js/js.tests/build.gradle.kts index 2484f0b7c48..c9600b14b49 100644 --- a/js/js.tests/build.gradle.kts +++ b/js/js.tests/build.gradle.kts @@ -64,14 +64,19 @@ sourceSets { "test" { projectDefault() } } -projectTest { + +fun Test.setUpBoxTests(jsEnabled: Boolean, jsIrEnabled: Boolean, skipIrKlib: Boolean = false) { dependsOn(":dist") - dependsOn(testJsRuntime) - dependsOn(generateIrRuntimeKlib) + if (jsEnabled) dependsOn(testJsRuntime) + if (jsIrEnabled && !skipIrKlib) dependsOn(generateIrRuntimeKlib) + + if (jsEnabled && !jsIrEnabled) exclude("org/jetbrains/kotlin/js/test/ir/semantics/*") + if (!jsEnabled && jsIrEnabled) include("org/jetbrains/kotlin/js/test/ir/semantics/*") + jvmArgs("-da:jdk.nashorn.internal.runtime.RecompilableScriptFunctionData") // Disable assertion which fails due to a bug in nashorn (KT-23637) workingDir = rootDir if (findProperty("kotlin.compiler.js.ir.tests.skip")?.toString()?.toBoolean() == true) { - exclude("org/jetbrains/kotlin/js/test/semantics/Ir*") + exclude("org/jetbrains/kotlin/js/test/ir/semantics/*") } doFirst { systemProperty("kotlin.ant.classpath", antLauncherJar.asPath) @@ -86,19 +91,29 @@ projectTest { } } -testsJar {} +projectTest { + setUpBoxTests(jsEnabled = true, jsIrEnabled = true) +} + +projectTest("jsTest") { + setUpBoxTests(jsEnabled = true, jsIrEnabled = false) +} + +projectTest("jsIrTest") { + setUpBoxTests(jsEnabled = false, jsIrEnabled = true) +} projectTest("quickTest") { - dependsOn(":dist") - dependsOn(testJsRuntime) - workingDir = rootDir + setUpBoxTests(jsEnabled = true, jsIrEnabled = false) systemProperty("kotlin.js.skipMinificationTest", "true") - doFirst { - systemProperty("kotlin.ant.classpath", antLauncherJar.asPath) - systemProperty("kotlin.ant.launcher.class", "org.apache.tools.ant.Main") - } } +projectTest("quickIrTest") { + setUpBoxTests(jsEnabled = false, jsIrEnabled = true, skipIrKlib = true) +} + +testsJar {} + val generateTests by generator("org.jetbrains.kotlin.generators.tests.GenerateJsTestsKt") val testDataDir = project(":js:js.translator").projectDir.resolve("testData") diff --git a/js/js.tests/test/org/jetbrains/kotlin/generators/tests/GenerateJsTests.kt b/js/js.tests/test/org/jetbrains/kotlin/generators/tests/GenerateJsTests.kt index a5c19429d58..e21b56810b1 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/generators/tests/GenerateJsTests.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/generators/tests/GenerateJsTests.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.generators.tests import org.jetbrains.kotlin.generators.tests.generator.testGroup import org.jetbrains.kotlin.js.test.AbstractDceTest import org.jetbrains.kotlin.js.test.AbstractJsLineNumberTest +import org.jetbrains.kotlin.js.test.ir.semantics.* import org.jetbrains.kotlin.js.test.semantics.* import org.jetbrains.kotlin.test.TargetBackend diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrBoxJsTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java similarity index 99% rename from js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrBoxJsTestGenerated.java rename to js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java index fa02305e196..63bf6686942 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrBoxJsTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java @@ -3,7 +3,7 @@ * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.js.test.semantics; +package org.jetbrains.kotlin.js.test.ir.semantics; import com.intellij.testFramework.TestDataPath; import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrCallableReferenceInlineTestsGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrCallableReferenceInlineTestsGenerated.java similarity index 99% rename from js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrCallableReferenceInlineTestsGenerated.java rename to js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrCallableReferenceInlineTestsGenerated.java index 34f90ed455e..a25158fbcb4 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrCallableReferenceInlineTestsGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrCallableReferenceInlineTestsGenerated.java @@ -3,7 +3,7 @@ * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.js.test.semantics; +package org.jetbrains.kotlin.js.test.ir.semantics; import com.intellij.testFramework.TestDataPath; import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrEnumValuesInlineTestsGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrEnumValuesInlineTestsGenerated.java similarity index 98% rename from js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrEnumValuesInlineTestsGenerated.java rename to js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrEnumValuesInlineTestsGenerated.java index 13fddb9c6fa..9ecb347cc5e 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrEnumValuesInlineTestsGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrEnumValuesInlineTestsGenerated.java @@ -3,7 +3,7 @@ * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.js.test.semantics; +package org.jetbrains.kotlin.js.test.ir.semantics; import com.intellij.testFramework.TestDataPath; import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrInlineDefaultValuesTestsGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrInlineDefaultValuesTestsGenerated.java similarity index 99% rename from js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrInlineDefaultValuesTestsGenerated.java rename to js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrInlineDefaultValuesTestsGenerated.java index aa1f63c7365..b0630e215b7 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrInlineDefaultValuesTestsGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrInlineDefaultValuesTestsGenerated.java @@ -3,7 +3,7 @@ * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.js.test.semantics; +package org.jetbrains.kotlin.js.test.ir.semantics; import com.intellij.testFramework.TestDataPath; import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrInlineSuspendTestsGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrInlineSuspendTestsGenerated.java similarity index 99% rename from js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrInlineSuspendTestsGenerated.java rename to js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrInlineSuspendTestsGenerated.java index 87531543cb7..18e20bbddaf 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrInlineSuspendTestsGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrInlineSuspendTestsGenerated.java @@ -3,7 +3,7 @@ * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.js.test.semantics; +package org.jetbrains.kotlin.js.test.ir.semantics; import com.intellij.testFramework.TestDataPath; import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java similarity index 99% rename from js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrJsCodegenBoxTestGenerated.java rename to js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index 895843e20b1..5e7f0739982 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -3,7 +3,7 @@ * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.js.test.semantics; +package org.jetbrains.kotlin.js.test.ir.semantics; import com.intellij.testFramework.TestDataPath; import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrJsInlineContractsTestsGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsInlineContractsTestsGenerated.java similarity index 98% rename from js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrJsInlineContractsTestsGenerated.java rename to js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsInlineContractsTestsGenerated.java index 3b92123245a..78e4fc5b8fc 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrJsInlineContractsTestsGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsInlineContractsTestsGenerated.java @@ -3,7 +3,7 @@ * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.js.test.semantics; +package org.jetbrains.kotlin.js.test.ir.semantics; import com.intellij.testFramework.TestDataPath; import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrNoInlineTestsGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrNoInlineTestsGenerated.java similarity index 98% rename from js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrNoInlineTestsGenerated.java rename to js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrNoInlineTestsGenerated.java index 290e1181297..57dd568cee9 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrNoInlineTestsGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrNoInlineTestsGenerated.java @@ -3,7 +3,7 @@ * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.js.test.semantics; +package org.jetbrains.kotlin.js.test.ir.semantics; import com.intellij.testFramework.TestDataPath; import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrNonLocalReturnsTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrNonLocalReturnsTestGenerated.java similarity index 99% rename from js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrNonLocalReturnsTestGenerated.java rename to js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrNonLocalReturnsTestGenerated.java index bed4063f509..c88c1943fc7 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrNonLocalReturnsTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrNonLocalReturnsTestGenerated.java @@ -3,7 +3,7 @@ * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.js.test.semantics; +package org.jetbrains.kotlin.js.test.ir.semantics; import com.intellij.testFramework.TestDataPath; import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrPropertyAccessorsInlineTestsGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrPropertyAccessorsInlineTestsGenerated.java similarity index 98% rename from js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrPropertyAccessorsInlineTestsGenerated.java rename to js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrPropertyAccessorsInlineTestsGenerated.java index 7b99389de84..765bb5dad89 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrPropertyAccessorsInlineTestsGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrPropertyAccessorsInlineTestsGenerated.java @@ -3,7 +3,7 @@ * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.js.test.semantics; +package org.jetbrains.kotlin.js.test.ir.semantics; import com.intellij.testFramework.TestDataPath; import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/abstractClassesForGeneratedIrTests.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/abstractClassesForGeneratedIrTests.kt new file mode 100644 index 00000000000..27b2d438215 --- /dev/null +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/abstractClassesForGeneratedIrTests.kt @@ -0,0 +1,41 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.js.test.ir.semantics + +import org.jetbrains.kotlin.js.test.BasicBoxTest +import org.jetbrains.kotlin.js.test.BasicIrBoxTest + +abstract class AbstractIrBoxJsTest : BasicIrBoxTest(BasicBoxTest.TEST_DATA_DIR_PATH + "box/", "irBox/") + +abstract class AbstractIrJsCodegenBoxTest : BasicIrBoxTest( + "compiler/testData/codegen/box/", + "codegen/irBox/" +) + +abstract class BorrowedIrInlineTest(relativePath: String) : BasicIrBoxTest( + "compiler/testData/codegen/boxInline/$relativePath", + "codegen/irBoxInline/$relativePath" +) { + init { + additionalCommonFileDirectories += BasicBoxTest.TEST_DATA_DIR_PATH + relativePath + "/_commonFiles/" + } +} + +abstract class AbstractIrNonLocalReturnsTest : BorrowedIrInlineTest("nonLocalReturns/") + +abstract class AbstractIrPropertyAccessorsInlineTests : BorrowedIrInlineTest("property/") + +abstract class AbstractIrNoInlineTests : BorrowedIrInlineTest("noInline/") + +abstract class AbstractIrCallableReferenceInlineTests : BorrowedIrInlineTest("callableReference/") + +abstract class AbstractIrEnumValuesInlineTests : BorrowedIrInlineTest("enum/") + +abstract class AbstractIrInlineDefaultValuesTests : BorrowedIrInlineTest("defaultValues/") + +abstract class AbstractIrInlineSuspendTests : BorrowedIrInlineTest("suspend/") + +abstract class AbstractIrJsInlineContractsTests : BorrowedIrInlineTest("contracts/") \ No newline at end of file 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 fe6f9128881..963e27ef47f 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 @@ -56,36 +56,4 @@ abstract class AbstractSourceMapGenerationSmokeTest : BasicBoxTest( "sourcemap/", generateSourceMap = true, generateNodeJsRunner = false -) - -abstract class AbstractIrBoxJsTest : BasicIrBoxTest(BasicBoxTest.TEST_DATA_DIR_PATH + "box/", "irBox/") - -abstract class AbstractIrJsCodegenBoxTest : BasicIrBoxTest( - "compiler/testData/codegen/box/", - "codegen/irBox/" -) - -abstract class BorrowedIrInlineTest(relativePath: String) : BasicIrBoxTest( - "compiler/testData/codegen/boxInline/$relativePath", - "codegen/irBoxInline/$relativePath" -) { - init { - additionalCommonFileDirectories += BasicBoxTest.TEST_DATA_DIR_PATH + relativePath + "/_commonFiles/" - } -} - -abstract class AbstractIrNonLocalReturnsTest : BorrowedIrInlineTest("nonLocalReturns/") - -abstract class AbstractIrPropertyAccessorsInlineTests : BorrowedIrInlineTest("property/") - -abstract class AbstractIrNoInlineTests : BorrowedIrInlineTest("noInline/") - -abstract class AbstractIrCallableReferenceInlineTests : BorrowedIrInlineTest("callableReference/") - -abstract class AbstractIrEnumValuesInlineTests : BorrowedIrInlineTest("enum/") - -abstract class AbstractIrInlineDefaultValuesTests : BorrowedIrInlineTest("defaultValues/") - -abstract class AbstractIrInlineSuspendTests : BorrowedIrInlineTest("suspend/") - -abstract class AbstractIrJsInlineContractsTests : BorrowedIrInlineTest("contracts/") \ No newline at end of file +) \ No newline at end of file