Both js targets use one TC service message classes

This commit is contained in:
Ilya Goncharov
2019-09-20 19:28:09 +03:00
parent 7d4b43f819
commit 09e2ebe60a
4 changed files with 63 additions and 47 deletions
@@ -0,0 +1,51 @@
/*
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
* 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.gradle.targets.js.testing
import org.gradle.api.internal.tasks.testing.TestResultProcessor
import org.gradle.process.ProcessForkOptions
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClient
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
import org.slf4j.Logger
internal open class JSServiceMessagesTestExecutionSpec(
forkOptions: ProcessForkOptions,
args: List<String>,
checkExitCode: Boolean,
clientSettings: TCServiceMessagesClientSettings
) : TCServiceMessagesTestExecutionSpec(
forkOptions,
args,
checkExitCode,
clientSettings
) {
protected val suppressedOutput = StringBuilder()
override fun showSuppressedOutput() {
println(suppressedOutput)
}
override fun createClient(testResultProcessor: TestResultProcessor, log: Logger): TCServiceMessagesClient {
return JSServiceMessagesClient(
results = testResultProcessor,
settings = clientSettings,
log = log,
suppressedOutput = suppressedOutput
)
}
}
internal open class JSServiceMessagesClient(
results: TestResultProcessor,
settings: TCServiceMessagesClientSettings,
log: Logger,
private val suppressedOutput: StringBuilder
) : TCServiceMessagesClient(results, settings, log) {
override fun printNonTestOutput(text: String) {
suppressedOutput.appendln(text)
}
}
@@ -1,21 +0,0 @@
/*
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
* 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.gradle.targets.js.testing
import org.gradle.api.internal.tasks.testing.TestResultProcessor
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClient
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings
import org.slf4j.Logger
internal class JSServiceMessagesClient(
results: TestResultProcessor,
settings: TCServiceMessagesClientSettings,
log: Logger
) : TCServiceMessagesClient(results, settings, log) {
override fun printNonTestOutput(text: String) {
// do nothing
}
}
@@ -12,7 +12,6 @@ import org.gradle.api.internal.tasks.testing.TestResultProcessor
import org.gradle.internal.logging.progress.ProgressLogger import org.gradle.internal.logging.progress.ProgressLogger
import org.gradle.process.ProcessForkOptions import org.gradle.process.ProcessForkOptions
import org.jetbrains.kotlin.gradle.internal.operation import org.jetbrains.kotlin.gradle.internal.operation
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClient
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
@@ -22,9 +21,7 @@ import org.jetbrains.kotlin.gradle.targets.js.appendConfigsFromDir
import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest import org.jetbrains.kotlin.gradle.targets.js.testing.*
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTestFramework
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinTestRunnerCliArgs
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
import org.jetbrains.kotlin.gradle.testing.internal.reportsDir import org.jetbrains.kotlin.gradle.testing.internal.reportsDir
import org.slf4j.Logger import org.slf4j.Logger
@@ -418,14 +415,13 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF
nodeModules.map { npmProject.require(it) } + nodeModules.map { npmProject.require(it) } +
listOf("start", karmaConfJs.absolutePath, "--debug") listOf("start", karmaConfJs.absolutePath, "--debug")
return object : TCServiceMessagesTestExecutionSpec( return object : JSServiceMessagesTestExecutionSpec(
forkOptions, forkOptions,
args, args,
false, false,
clientSettings clientSettings
) { ) {
lateinit var progressLogger: ProgressLogger lateinit var progressLogger: ProgressLogger
val suppressedOutput = StringBuilder()
var isLaunchFailed: Boolean = false var isLaunchFailed: Boolean = false
@@ -441,12 +437,13 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF
} }
} }
override fun showSuppressedOutput() {
println(suppressedOutput)
}
override fun createClient(testResultProcessor: TestResultProcessor, log: Logger) = override fun createClient(testResultProcessor: TestResultProcessor, log: Logger) =
object : TCServiceMessagesClient(testResultProcessor, clientSettings, log) { object : JSServiceMessagesClient(
testResultProcessor,
clientSettings,
log,
suppressedOutput
) {
val baseTestNameSuffix get() = settings.testNameSuffix val baseTestNameSuffix get() = settings.testNameSuffix
override var testNameSuffix: String? = baseTestNameSuffix override var testNameSuffix: String? = baseTestNameSuffix
@@ -490,7 +487,7 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF
return return
} }
suppressedOutput.appendln(text) super.printNonTestOutput(text)
} }
} }
} }
@@ -6,9 +6,7 @@
package org.jetbrains.kotlin.gradle.targets.js.testing.nodejs package org.jetbrains.kotlin.gradle.targets.js.testing.nodejs
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.internal.tasks.testing.TestResultProcessor
import org.gradle.process.ProcessForkOptions import org.gradle.process.ProcessForkOptions
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClient
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
@@ -16,12 +14,11 @@ import org.jetbrains.kotlin.gradle.targets.js.KotlinGradleNpmPackage
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
import org.jetbrains.kotlin.gradle.targets.js.testing.JSServiceMessagesClient import org.jetbrains.kotlin.gradle.targets.js.testing.JSServiceMessagesTestExecutionSpec
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTestFramework import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTestFramework
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinTestRunnerCliArgs import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinTestRunnerCliArgs
import org.jetbrains.kotlin.gradle.testing.IgnoredTestSuites import org.jetbrains.kotlin.gradle.testing.IgnoredTestSuites
import org.slf4j.Logger
class KotlinNodeJsTestRunner(override val compilation: KotlinJsCompilation) : KotlinJsTestFramework { class KotlinNodeJsTestRunner(override val compilation: KotlinJsCompilation) : KotlinJsTestFramework {
val project: Project val project: Project
@@ -67,19 +64,11 @@ class KotlinNodeJsTestRunner(override val compilation: KotlinJsCompilation) : Ko
} + } +
cliArgs.toList() cliArgs.toList()
return object : TCServiceMessagesTestExecutionSpec( return JSServiceMessagesTestExecutionSpec(
forkOptions, forkOptions,
args, args,
true, true,
clientSettings clientSettings
) { )
override fun createClient(testResultProcessor: TestResultProcessor, log: Logger): TCServiceMessagesClient {
return JSServiceMessagesClient(
testResultProcessor,
clientSettings,
log
)
}
}
} }
} }