From 4849bddde14d76f8ad765716f0c70adb00694ff8 Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Tue, 14 Nov 2017 13:32:30 +0300 Subject: [PATCH] KJS: write minification's test results to separate directory It allows excluding this directory from indexing inside IDEA and probably simplifies the main workflow. --- .gitignore | 3 ++- .../org/jetbrains/kotlin/js/test/BasicBoxTest.kt | 13 +++++++++---- .../semantics/AbstractOutputPrefixPostfixTest.kt | 2 +- .../test/semantics/AbstractWebDemoExamplesTest.kt | 2 +- .../js/test/semantics/MultiModuleOrderTest.kt | 7 +++++-- .../semantics/abstractClassesForGeneratedTests.kt | 10 +++++----- .../testData/multiModuleOrder/{cases => }/plain.kt | 0 .../testData/multiModuleOrder/{cases => }/umd.kt | 0 8 files changed, 23 insertions(+), 14 deletions(-) rename js/js.translator/testData/multiModuleOrder/{cases => }/plain.kt (100%) rename js/js.translator/testData/multiModuleOrder/{cases => }/umd.kt (100%) diff --git a/.gitignore b/.gitignore index 65d14941cb1..05d40bb041b 100644 --- a/.gitignore +++ b/.gitignore @@ -18,7 +18,8 @@ workspace.xml /ultimate/ideaSDK /ultimate/out /ultimate/tmp -/js/js.translator/testData/**/out/ +/js/js.translator/testData/out/ +/js/js.translator/testData/out-min/ .gradle/ build/ !**/src/**/build 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 e953c7afdaa..fdd66a2b76d 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 @@ -74,13 +74,17 @@ import java.util.regex.Pattern abstract class BasicBoxTest( protected val pathToTestDir: String, - private val pathToOutputDir: String, + testGroupOutputDirPrefix: String, + pathToRootOutputDir: String = BasicBoxTest.TEST_DATA_DIR_PATH, private val typedArraysEnabled: Boolean = true, private val generateSourceMap: Boolean = false, private val generateNodeJsRunner: Boolean = true ) : KotlinTestWithEnvironment() { val additionalCommonFileDirectories = mutableListOf() + private val testGroupOutputDirForCompilation = File(pathToRootOutputDir + "out/" + testGroupOutputDirPrefix) + private val testGroupOutputDirForMinification = File(pathToRootOutputDir + "out-min/" + testGroupOutputDirPrefix) + protected open fun getOutputPrefixFile(testFilePath: String): File? = null protected open fun getOutputPostfixFile(testFilePath: String): File? = null @@ -196,8 +200,9 @@ abstract class BasicBoxTest( } } + val outputDirForMinification = getOutputDir(file, testGroupOutputDirForMinification) minifyAndRun( - workDir = File(File(outputDir, "min"), file.nameWithoutExtension), + workDir = File(outputDirForMinification, file.nameWithoutExtension), allJsFiles = allJsFiles, generatedJsFiles = generatedJsFiles, expectedResult = expectedResult, @@ -254,13 +259,13 @@ abstract class BasicBoxTest( return sb.toString() } - protected fun getOutputDir(file: File): File { + protected fun getOutputDir(file: File, testGroupOutputDir: File = testGroupOutputDirForCompilation): File { val stopFile = File(pathToTestDir) return generateSequence(file.parentFile) { it.parentFile } .takeWhile { it != stopFile } .map { it.name } .toList().asReversed() - .fold(File(pathToOutputDir), ::File) + .fold(testGroupOutputDir, ::File) } private fun TestModule.outputFileSimpleName(): String { diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/AbstractOutputPrefixPostfixTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/AbstractOutputPrefixPostfixTest.kt index 6ec65add515..3fc7760fc0e 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/AbstractOutputPrefixPostfixTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/AbstractOutputPrefixPostfixTest.kt @@ -21,7 +21,7 @@ import java.io.File abstract class AbstractOutputPrefixPostfixTest : BasicBoxTest( BasicBoxTest.TEST_DATA_DIR_PATH + "outputPrefixPostfix/", - "${BasicBoxTest.TEST_DATA_DIR_PATH}/out/outputPrefixPostfix/", + "outputPrefixPostfix/", generateNodeJsRunner = false ) { override fun getOutputPrefixFile(testFilePath: String): File? { diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/AbstractWebDemoExamplesTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/AbstractWebDemoExamplesTest.kt index ef1bc863efe..299c4ec47d5 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/AbstractWebDemoExamplesTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/AbstractWebDemoExamplesTest.kt @@ -26,7 +26,7 @@ import javax.script.ScriptException abstract class AbstractWebDemoExamplesTest(relativePath: String) : BasicBoxTest( BasicBoxTest.TEST_DATA_DIR_PATH + "/$relativePath/", - BasicBoxTest.TEST_DATA_DIR_PATH + "out/$relativePath/", + relativePath, generateNodeJsRunner = false ) { override fun runGeneratedCode( diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/MultiModuleOrderTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/MultiModuleOrderTest.kt index 29a27457e1c..d1af3346bfc 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/MultiModuleOrderTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/MultiModuleOrderTest.kt @@ -21,7 +21,10 @@ import org.jetbrains.kotlin.js.test.NashornJsTestChecker import java.io.File import javax.script.ScriptException -class MultiModuleOrderTest : BasicBoxTest("$TEST_DATA_DIR_PATH/multiModuleOrder/cases/", "$TEST_DATA_DIR_PATH/multiModuleOrder/out/") { +private val testGroupDir = "multiModuleOrder/" +private val pathToTestGroupDir = BasicBoxTest.TEST_DATA_DIR_PATH + testGroupDir + +class MultiModuleOrderTest : BasicBoxTest(pathToTestGroupDir, testGroupDir) { fun testPlain() { runTest("plain") } @@ -31,7 +34,7 @@ class MultiModuleOrderTest : BasicBoxTest("$TEST_DATA_DIR_PATH/multiModuleOrder/ } fun runTest(name: String) { - val fullPath = "$TEST_DATA_DIR_PATH/multiModuleOrder/cases/$name.kt" + val fullPath = pathToTestGroupDir + "$name.kt" doTest(fullPath) checkWrongOrderReported(fullPath, name) } 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 989277bb96b..e5043ab8c47 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 @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.js.test.BasicBoxTest abstract class BorrowedInlineTest(relativePath: String) : BasicBoxTest( "compiler/testData/codegen/boxInline/$relativePath", - "${BasicBoxTest.TEST_DATA_DIR_PATH}/out/codegen/boxInline/$relativePath/" + "codegen/boxInline/$relativePath" ) { init { additionalCommonFileDirectories += BasicBoxTest.TEST_DATA_DIR_PATH + relativePath + "/_commonFiles/" @@ -41,25 +41,25 @@ abstract class AbstractInlineDefaultValuesTests : BorrowedInlineTest("defaultVal abstract class AbstractBoxJsTest : BasicBoxTest( BasicBoxTest.TEST_DATA_DIR_PATH + "box/", - BasicBoxTest.TEST_DATA_DIR_PATH + "out/box/" + "box/" ) { override val runMinifierByDefault: Boolean = true } abstract class AbstractJsCodegenBoxTest : BasicBoxTest( "compiler/testData/codegen/box/", - BasicBoxTest.TEST_DATA_DIR_PATH + "out/codegen/box/" + "codegen/box/" ) abstract class AbstractJsLegacyPrimitiveArraysBoxTest : BasicBoxTest( "compiler/testData/codegen/box/arrays/", - BasicBoxTest.TEST_DATA_DIR_PATH + "out/codegen/box/arrays-legacy-primitivearrays/", + "codegen/box/arrays-legacy-primitivearrays/", typedArraysEnabled = false ) abstract class AbstractSourceMapGenerationSmokeTest : BasicBoxTest( BasicBoxTest.TEST_DATA_DIR_PATH + "sourcemap/", - "${BasicBoxTest.TEST_DATA_DIR_PATH}/out/sourcemap/", + "sourcemap/", generateSourceMap = true, generateNodeJsRunner = false ) \ No newline at end of file diff --git a/js/js.translator/testData/multiModuleOrder/cases/plain.kt b/js/js.translator/testData/multiModuleOrder/plain.kt similarity index 100% rename from js/js.translator/testData/multiModuleOrder/cases/plain.kt rename to js/js.translator/testData/multiModuleOrder/plain.kt diff --git a/js/js.translator/testData/multiModuleOrder/cases/umd.kt b/js/js.translator/testData/multiModuleOrder/umd.kt similarity index 100% rename from js/js.translator/testData/multiModuleOrder/cases/umd.kt rename to js/js.translator/testData/multiModuleOrder/umd.kt