From 338bde23fc3bea7f27680ed01010e3f0aadbe955 Mon Sep 17 00:00:00 2001 From: Anton Bannykh Date: Wed, 7 Mar 2018 20:40:44 +0300 Subject: [PATCH] JS stdlib: run kotlin.test library tests --- libraries/kotlin.test/js/build.gradle | 1 + libraries/stdlib/js/build.gradle | 59 +++++++++++++-------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/libraries/kotlin.test/js/build.gradle b/libraries/kotlin.test/js/build.gradle index 84871fe46b9..08fedbb2447 100644 --- a/libraries/kotlin.test/js/build.gradle +++ b/libraries/kotlin.test/js/build.gradle @@ -27,6 +27,7 @@ compileTestKotlin2Js { kotlinOptions.freeCompilerArgs = ["-Xallow-kotlin-package"] kotlinOptions { metaInfo = false + moduleKind = "umd" } } diff --git a/libraries/stdlib/js/build.gradle b/libraries/stdlib/js/build.gradle index 79c190a4019..26faaba2fb2 100644 --- a/libraries/stdlib/js/build.gradle +++ b/libraries/stdlib/js/build.gradle @@ -69,12 +69,6 @@ dependencies { merger project(":tools:kotlin-stdlib-js-merger") } -idea { - module { - excludeDirs = excludeDirs + files('node_modules') - } -} - createPreprocessorTask(project, "Main", "${projectDir}/../src/kotlin", commonSrcDir) createPreprocessorTask(project, "Test", "${projectDir}/../test", commonTestSrcDir) @@ -143,7 +137,8 @@ compileKotlin2Js { outputFile = "${buildDir}/classes/main/kotlin.js" sourceMap = true sourceMapPrefix = "./" - freeCompilerArgs += [ "-source-map-base-dirs", [builtinsSrcDir, jsSrcDir, commonSrcDir].collect { file(it).absoluteFile }.join(File.pathSeparator) ] + freeCompilerArgs += ["-source-map-base-dirs", [builtinsSrcDir, jsSrcDir, commonSrcDir].collect { file(it).absoluteFile }. + join(File.pathSeparator)] } } @@ -155,7 +150,7 @@ compileExperimentalKotlin2Js { outputFile = "${buildDir}/classes/main/kotlin-experimental.js" sourceMap = true sourceMapPrefix = "./" - freeCompilerArgs += [ "-source-map-base-dirs", [experimentalSrcDir].join(File.pathSeparator) ] + freeCompilerArgs += ["-source-map-base-dirs", [experimentalSrcDir].join(File.pathSeparator)] } } @@ -183,8 +178,8 @@ task compileJs(type: JavaExec) { doFirst { args = [jsOutputFile, rootDir, "$jsSrcDir/wrapper.js"] + inputFiles.collect { it.path } + (compileBuiltinsKotlin2Js.outputs.files.collect { it.path } + - compileKotlin2Js.outputs.files.collect { it.path } + - compileExperimentalKotlin2Js.outputs.files.collect { it.path }).findAll { + compileKotlin2Js.outputs.files.collect { it.path } + + compileExperimentalKotlin2Js.outputs.files.collect { it.path }).findAll { it.endsWith(".js") && !it.endsWith(".meta.js") } } @@ -248,7 +243,7 @@ task mergedJar(type: Jar, dependsOn: classes) { new File("${rootDir}/resources/kotlinManifest.properties").withInputStream { properties.load(it) } - manifest.attributes 'Implementation-Title' : properties."manifest.impl.title.kotlin.javascript.stdlib" + manifest.attributes 'Implementation-Title': properties."manifest.impl.title.kotlin.javascript.stdlib" includeEmptyDirs false duplicatesStrategy DuplicatesStrategy.EXCLUDE @@ -260,19 +255,19 @@ task mergedJar(type: Jar, dependsOn: classes) { task sourcesJar(type: Jar, dependsOn: classes) { classifier = 'sources' includeEmptyDirs false - from (sourceSets.builtins.allSource) { + from(sourceSets.builtins.allSource) { into 'kotlin' } - from (sourceSets.main.allSource) { + from(sourceSets.main.allSource) { into 'kotlin' exclude '**/*.java' exclude 'org.w3c/**' exclude 'js/**' } - from (sourceSets.main.allSource) { + from(sourceSets.main.allSource) { include 'org.w3c/**' } - from (sourceSets.experimental.allSource) { + from(sourceSets.experimental.allSource) { into 'kotlin' } } @@ -301,38 +296,42 @@ dist { } } -task populateNodeModules(type: Copy, dependsOn: [compileJs, compileTestKotlin2Js]) { - from jsOutputFile - from kotlinTestJsOutputFile - - into "${buildDir}/node_modules" -} - node { download = true version = '8.9.4' // The default 6.9.1 has buggy hyperbolic functions implementation nodeModulesDir = buildDir } -task installMocha(type: NpmTask, dependsOn: [populateNodeModules]) { +// Otherwise Node ignores nodeModulesDir +task deleteLegacyNodeModules(type: Delete) { + delete "$projectDir/node_modules" +} + +task installMocha(type: NpmTask, dependsOn: [deleteLegacyNodeModules]) { args = ['install', 'mocha'] } -task installTeamcityReporter(type: NpmTask, dependsOn: [populateNodeModules]) { +task installTeamcityReporter(type: NpmTask, dependsOn: [deleteLegacyNodeModules]) { args = ['install', 'mocha-teamcity-reporter'] } -task runMocha(type: NodeTask, dependsOn: [compileTestKotlin2Js, populateNodeModules, installMocha]) { +task runMocha(type: NodeTask, dependsOn: [testClasses, installMocha, ':kotlin-test:kotlin-test-js:testClasses']) { script = file("${buildDir}/node_modules/mocha/bin/mocha") - args = [jsTestOutputFile] if (project.hasProperty("teamcity")) { dependsOn installTeamcityReporter - args = ['--reporter', 'mocha-teamcity-reporter'] + args + args = ['--reporter', 'mocha-teamcity-reporter'] + } + else { + args = ['--reporter', 'min'] + } - execOverrides { - it.ignoreExitValue = true - } + args += [jsTestOutputFile, kotlinTestJsTestOutputFile] + + execOverrides { + it.ignoreExitValue = rootProject.ignoreTestFailures + it.environment('NODE_PATH', [file(jsOutputFile).parent, file(kotlinTestJsOutputFile).parent].join(File.pathSeparator)) + it.workingDir = buildDir } }