1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
import com.moowork.gradle.node.NodeExtension
import com.moowork.gradle.node.exec.ExecRunner
import com.moowork.gradle.node.npm.NpmExecRunner
import com.moowork.gradle.node.npm.NpmTask
plugins {
kotlin("jvm")
id("jps-compatible")
id("com.moowork.node").version("1.2.0")
}
node {
download = true
}
val antLauncherJar by configurations.creating
val testJsRuntime by configurations.creating
dependencies {
testRuntime(intellijDep())
testCompile(protobufFull())
testCompile(projectTests(":compiler:tests-common"))
testCompileOnly(project(":compiler:frontend"))
testCompileOnly(project(":compiler:cli"))
testCompileOnly(project(":compiler:util"))
testCompileOnly(intellijCoreDep()) { includeJars("intellij-core") }
testCompileOnly(intellijDep()) { includeJars("openapi", "idea", "idea_rt", "util") }
testCompile(project(":compiler:backend.js"))
testCompile(project(":js:js.translator"))
testCompile(project(":js:js.serializer"))
testCompile(project(":js:js.dce"))
testCompile(commonDep("junit:junit"))
testCompile(projectTests(":kotlin-build-common"))
testCompile(projectTests(":generators:test-generator"))
testRuntime(kotlinStdlib())
testJsRuntime(kotlinStdlib("js"))
testJsRuntime(project(":kotlin-test:kotlin-test-js")) // to be sure that kotlin-test-js built before tests runned
testRuntime(project(":kotlin-reflect"))
testRuntime(project(":kotlin-preloader")) // it's required for ant tests
testRuntime(project(":compiler:backend-common"))
testRuntime(commonDep("org.fusesource.jansi", "jansi"))
antLauncherJar(commonDep("org.apache.ant", "ant"))
antLauncherJar(files(toolsJar()))
}
sourceSets {
"main" {}
"test" { projectDefault() }
}
projectTest {
dependsOn(":dist")
dependsOn(testJsRuntime)
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*")
}
doFirst {
systemProperty("kotlin.ant.classpath", antLauncherJar.asPath)
systemProperty("kotlin.ant.launcher.class", "org.apache.tools.ant.Main")
}
val prefixForPpropertiesToForward = "fd."
for((key, value) in properties) {
if (key.startsWith(prefixForPpropertiesToForward)) {
systemProperty(key.substring(prefixForPpropertiesToForward.length), value)
}
}
}
testsJar {}
projectTest("quickTest") {
dependsOn(":dist")
dependsOn(testJsRuntime)
workingDir = rootDir
systemProperty("kotlin.js.skipMinificationTest", "true")
doFirst {
systemProperty("kotlin.ant.classpath", antLauncherJar.asPath)
systemProperty("kotlin.ant.launcher.class", "org.apache.tools.ant.Main")
}
}
val generateTests by generator("org.jetbrains.kotlin.generators.tests.GenerateJsTestsKt")
val testDataDir = project(":js:js.translator").projectDir.resolve("testData")
extensions.getByType(NodeExtension::class.java).nodeModulesDir = testDataDir
val npmInstall by tasks.getting(NpmTask::class) {
setWorkingDir(testDataDir)
}
val runMocha by task<NpmTask> {
setWorkingDir(testDataDir)
val target = if (project.hasProperty("teamcity")) "runOnTeamcity" else "test"
setArgs(listOf("run", target))
setIgnoreExitValue(rootProject.getBooleanProperty("ignoreTestFailures") ?: false)
dependsOn(npmInstall, "test")
val check by tasks
check.dependsOn(this)
}
|