Skip to content
This repository was archived by the owner on Jun 27, 2020. It is now read-only.

Commit 568610b

Browse files
author
Sergey Mashkov
committed
Fix tests
1 parent ae77cd5 commit 568610b

File tree

3 files changed

+52
-9
lines changed

3 files changed

+52
-9
lines changed

kotlin-frontend/src/test/kotlin/org/jetbrains/kotlin/gradle/frontend/AbstractFrontendTest.kt

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import org.gradle.testkit.runner.internal.*
55
import org.jetbrains.kotlin.preprocessor.*
66
import org.junit.*
77
import org.junit.rules.*
8+
import org.junit.runner.*
89
import java.io.*
910

1011
abstract class AbstractFrontendTest(val gradleVersion: String, val kotlinVersion: String) {
@@ -15,6 +16,28 @@ abstract class AbstractFrontendTest(val gradleVersion: String, val kotlinVersion
1516
protected lateinit var srcDir: File
1617
protected lateinit var runner: GradleRunner
1718

19+
@get:Rule
20+
val testName = TestName()
21+
22+
@get:Rule
23+
val failedRule = object : TestWatcher() {
24+
override fun failed(e: Throwable?, description: Description?) {
25+
val dst = File("build/tests/${testName.methodName.replace("[", "-").replace("]", "")}").apply { mkdirsOrFail() }
26+
projectDir.root.copyRecursively(dst, true) { file, e ->
27+
System.err.println("Failed to copy $file due to ${e.message}")
28+
OnErrorAction.SKIP
29+
}
30+
println("Copied project to ${dst.absolutePath}")
31+
}
32+
33+
/*
34+
// useful for debugging
35+
override fun succeeded(description: Description?) {
36+
failed(null, description)
37+
}
38+
// */
39+
}
40+
1841
@get:Rule
1942
val projectDir = TemporaryFolder()
2043

@@ -39,6 +62,6 @@ abstract class AbstractFrontendTest(val gradleVersion: String, val kotlinVersion
3962
builder.scriptClassPath += "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
4063
builder.scriptClassPath.addAll(cp.filter { "org.jetbrains.kotlin" !in it.path.replace("\\", "/") || kotlinVersion in it.name })
4164

42-
builder.compileDependencies += "org.jetbrains.kotlin:kotlin-js-library:$kotlinVersion"
65+
builder.addJsDependency()
4366
}
4467
}

kotlin-frontend/src/test/kotlin/org/jetbrains/kotlin/gradle/frontend/BuildScriptBuilder.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import java.io.*
55
import java.util.*
66

77
class BuildScriptBuilder {
8-
var kotlinVersion = "1.0.5-2"
8+
var kotlinVersion = "1.0.6"
99

1010
val scriptClassPath = ArrayList<Any>()
1111
val compileDependencies = ArrayList<String>()
@@ -20,6 +20,15 @@ class BuildScriptBuilder {
2020
applyPlugins += "kotlin2js"
2121
}
2222

23+
fun addJsDependency() {
24+
if (kotlinVersion.startsWith("1.0."))
25+
compileDependencies += "org.jetbrains.kotlin:kotlin-js-library:$kotlinVersion"
26+
else if (kotlinVersion.startsWith("1.1."))
27+
compileDependencies += "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlinVersion"
28+
else
29+
throw IllegalArgumentException("Only 1.0 and 1.1 kotlin supported")
30+
}
31+
2332
fun build(body: Builder.() -> Unit = {}): String {
2433
val builder = Builder()
2534

kotlin-frontend/src/test/kotlin/org/jetbrains/kotlin/gradle/frontend/SimpleFrontendProjectTest.kt

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.jetbrains.kotlin.gradle.frontend
22

33
import groovy.json.*
4+
import javafx.concurrent.*
45
import org.gradle.testkit.runner.*
56
import org.jetbrains.kotlin.gradle.frontend.util.*
67
import org.jetbrains.kotlin.preprocessor.*
@@ -26,7 +27,7 @@ class SimpleFrontendProjectTest(gradleVersion: String, kotlinVersion: String) :
2627
.build()
2728

2829
assertNull(result.task(":webpack-bundle"))
29-
assertNull(result.task(":npm-install"))
30+
assertNotFailed(result.task(":npm-install"))
3031
}
3132

3233
@Test
@@ -47,7 +48,7 @@ class SimpleFrontendProjectTest(gradleVersion: String, kotlinVersion: String) :
4748
val result = runner.withArguments("bundle").build()
4849

4950
assertNull(result.task(":webpack-bundle"))
50-
assertNull(result.task(":npm-install"))
51+
assertNotFailed(result.task(":npm-install"))
5152
assertEquals(TaskOutcome.SUCCESS, result.task(":compileKotlin2Js")?.outcome)
5253
assertTrue { projectDir.root.resolve("build/js/script.js").isFile }
5354
}
@@ -264,7 +265,7 @@ class SimpleFrontendProjectTest(gradleVersion: String, kotlinVersion: String) :
264265
try {
265266
assertEquals(TaskOutcome.SUCCESS, result.task(":webpack-config")?.outcome)
266267
assertEquals(TaskOutcome.SUCCESS, result.task(":webpack-run")?.outcome)
267-
assertNull(result.task(":karma-start"))
268+
assertNotExecuted(result.task(":karma-start"))
268269
assertNull(result.task(":ktor-start"))
269270

270271
assertFalse { projectDir.root.resolve("build/bundle/main.bundle.js").exists() }
@@ -359,7 +360,7 @@ class SimpleFrontendProjectTest(gradleVersion: String, kotlinVersion: String) :
359360
applyKotlin2JsPlugin()
360361
applyFrontendPlugin()
361362

362-
compileDependencies += "org.jetbrains.kotlin:kotlin-js-library:$kotlinVersion"
363+
addJsDependency()
363364
}
364365

365366
val builder2 = BuildScriptBuilder().apply {
@@ -432,13 +433,23 @@ class SimpleFrontendProjectTest(gradleVersion: String, kotlinVersion: String) :
432433
assertTrue { "my-special-const-1" in bundleContent }
433434
}
434435

436+
private fun assertNotExecuted(task: BuildTask?) {
437+
if (task != null && task.outcome != TaskOutcome.UP_TO_DATE && task.outcome != TaskOutcome.SKIPPED) {
438+
fail("${task.path} should be skipped or up-to-date for empty project but it is ${task.outcome}")
439+
}
440+
}
441+
442+
private fun assertNotFailed(task: BuildTask?) {
443+
assertNotEquals(TaskOutcome.FAILED, task?.outcome, "Task ${task?.path} is failed")
444+
}
445+
435446
companion object {
436447
@JvmStatic
437448
@Parameters
438449
fun versions() = listOf(
439-
arrayOf("3.1", "1.0.5-2"),
440-
arrayOf("3.1", "1.1.0-dev-5520"),
441-
arrayOf("3.2.1", "1.0.5-2")
450+
arrayOf("3.1", "1.0.6"),
451+
arrayOf("3.1", "1.1.0"),
452+
arrayOf("3.2.1", "1.0.6")
442453
)
443454
}
444455
}

0 commit comments

Comments
 (0)