[K/JS] Move JS IR box tests setup into separated function
This commit is contained in:
@@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2023 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.
|
||||||
|
*/
|
||||||
|
import org.gradle.api.tasks.testing.Test
|
||||||
|
|
||||||
|
fun Test.useJsIrBoxTests(
|
||||||
|
version: Any,
|
||||||
|
buildDir: String = "",
|
||||||
|
fullStdLib: String = "libraries/stdlib/js-ir/build/classes/kotlin/js/main",
|
||||||
|
reducedStdlibPath: String = "libraries/stdlib/js-ir-minimal-for-test/build/classes/kotlin/js/main",
|
||||||
|
kotlinJsTestPath: String = "libraries/kotlin.test/js-ir/build/classes/kotlin/js/main"
|
||||||
|
) {
|
||||||
|
setupV8()
|
||||||
|
dependsOn(":kotlin-stdlib-js-ir:compileKotlinJs")
|
||||||
|
dependsOn(":kotlin-test:kotlin-test-js-ir:compileKotlinJs")
|
||||||
|
dependsOn(":kotlin-stdlib-js-ir-minimal-for-test:compileKotlinJs")
|
||||||
|
|
||||||
|
systemProperty("kotlin.js.test.root.out.dir", buildDir)
|
||||||
|
systemProperty("kotlin.js.full.stdlib.path", fullStdLib)
|
||||||
|
systemProperty("kotlin.js.reduced.stdlib.path", reducedStdlibPath)
|
||||||
|
systemProperty("kotlin.js.kotlin.test.path", kotlinJsTestPath)
|
||||||
|
systemProperty("kotlin.js.stdlib.klib.path", "libraries/stdlib/js-ir/build/libs/kotlin-stdlib-js-ir-js-$version.klib")
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2023 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.
|
||||||
|
*/
|
||||||
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.api.tasks.testing.Test
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.d8.D8RootExtension
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.d8.D8RootPlugin
|
||||||
|
|
||||||
|
private object V8Utils {
|
||||||
|
lateinit var d8Plugin: D8RootExtension
|
||||||
|
|
||||||
|
fun useD8Plugin(project: Project) {
|
||||||
|
d8Plugin = D8RootPlugin.apply(project.rootProject)
|
||||||
|
d8Plugin.version = project.v8Version
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Project.useD8Plugin() {
|
||||||
|
V8Utils.useD8Plugin(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Test.setupV8() {
|
||||||
|
dependsOn(V8Utils.d8Plugin.setupTaskProvider)
|
||||||
|
val v8ExecutablePath = project.provider {
|
||||||
|
V8Utils.d8Plugin.requireConfigured().executablePath.absolutePath
|
||||||
|
}
|
||||||
|
doFirst {
|
||||||
|
systemProperty("javascript.engine.path.V8", v8ExecutablePath.get())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
import com.github.gradle.node.npm.task.NpmTask
|
import com.github.gradle.node.npm.task.NpmTask
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.d8.D8RootPlugin
|
|
||||||
import org.jetbrains.kotlin.ideaExt.idea
|
import org.jetbrains.kotlin.ideaExt.idea
|
||||||
import org.apache.tools.ant.filters.FixCrLfFilter
|
import org.apache.tools.ant.filters.FixCrLfFilter
|
||||||
import java.util.Properties
|
import java.util.Properties
|
||||||
@@ -85,6 +84,7 @@ dependencies {
|
|||||||
|
|
||||||
val generationRoot = projectDir.resolve("tests-gen")
|
val generationRoot = projectDir.resolve("tests-gen")
|
||||||
|
|
||||||
|
useD8Plugin()
|
||||||
optInToExperimentalCompilerApi()
|
optInToExperimentalCompilerApi()
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
@@ -207,21 +207,9 @@ fun Test.setupNodeJs() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
val d8Plugin = D8RootPlugin.apply(rootProject)
|
|
||||||
d8Plugin.version = v8Version
|
|
||||||
|
|
||||||
fun Test.setupV8() {
|
|
||||||
dependsOn(d8Plugin.setupTaskProvider)
|
|
||||||
val v8ExecutablePath = project.provider {
|
|
||||||
d8Plugin.requireConfigured().executablePath.absolutePath
|
|
||||||
}
|
|
||||||
doFirst {
|
|
||||||
systemProperty("javascript.engine.path.V8", v8ExecutablePath.get())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Test.setUpJsBoxTests(jsEnabled: Boolean, jsIrEnabled: Boolean, firEnabled: Boolean, es6Enabled: Boolean) {
|
fun Test.setUpJsBoxTests(jsEnabled: Boolean, jsIrEnabled: Boolean, firEnabled: Boolean, es6Enabled: Boolean) {
|
||||||
setupV8()
|
setupV8()
|
||||||
|
|
||||||
if (jsIrEnabled) {
|
if (jsIrEnabled) {
|
||||||
setupNodeJs()
|
setupNodeJs()
|
||||||
dependsOn(npmInstall)
|
dependsOn(npmInstall)
|
||||||
@@ -446,17 +434,11 @@ val runMocha by tasks.registering {
|
|||||||
}
|
}
|
||||||
|
|
||||||
projectTest("invalidationTest", jUnitMode = JUnitMode.JUnit4) {
|
projectTest("invalidationTest", jUnitMode = JUnitMode.JUnit4) {
|
||||||
setupV8()
|
|
||||||
workingDir = rootDir
|
workingDir = rootDir
|
||||||
|
|
||||||
|
useJsIrBoxTests(version = version, buildDir = "$buildDir/")
|
||||||
include("org/jetbrains/kotlin/incremental/*")
|
include("org/jetbrains/kotlin/incremental/*")
|
||||||
|
|
||||||
dependsOn(":dist")
|
dependsOn(":dist")
|
||||||
dependsOn(":kotlin-stdlib-js-ir:compileKotlinJs")
|
|
||||||
|
|
||||||
systemProperty("kotlin.js.stdlib.klib.path", "libraries/stdlib/js-ir/build/libs/kotlin-stdlib-js-ir-js-$version.klib")
|
|
||||||
systemProperty("kotlin.js.test.root.out.dir", "$buildDir/")
|
|
||||||
|
|
||||||
forwardProperties()
|
forwardProperties()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.d8.D8RootPlugin
|
|
||||||
|
|
||||||
description = "Atomicfu Compiler Plugin"
|
description = "Atomicfu Compiler Plugin"
|
||||||
|
|
||||||
@@ -105,43 +104,24 @@ runtimeJar()
|
|||||||
sourcesJar()
|
sourcesJar()
|
||||||
javadocJar()
|
javadocJar()
|
||||||
testsJar()
|
testsJar()
|
||||||
|
useD8Plugin()
|
||||||
|
|
||||||
projectTest(jUnitMode = JUnitMode.JUnit5) {
|
projectTest(jUnitMode = JUnitMode.JUnit5) {
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
|
useJsIrBoxTests(version = version, buildDir = "$buildDir/")
|
||||||
|
|
||||||
workingDir = rootDir
|
workingDir = rootDir
|
||||||
|
|
||||||
|
dependsOn(":dist")
|
||||||
dependsOn(atomicfuJsIrRuntimeForTests)
|
dependsOn(atomicfuJsIrRuntimeForTests)
|
||||||
|
|
||||||
val localAtomicfuJsIrRuntimeForTests: FileCollection = atomicfuJsIrRuntimeForTests
|
val localAtomicfuJsIrRuntimeForTests: FileCollection = atomicfuJsIrRuntimeForTests
|
||||||
val localAtomicfuJsClasspath: FileCollection = atomicfuJsClasspath
|
val localAtomicfuJsClasspath: FileCollection = atomicfuJsClasspath
|
||||||
val localAtomicfuJvmClasspath: FileCollection = atomicfuJvmClasspath
|
val localAtomicfuJvmClasspath: FileCollection = atomicfuJvmClasspath
|
||||||
|
|
||||||
doFirst {
|
doFirst {
|
||||||
systemProperty("atomicfuJsIrRuntimeForTests.classpath", localAtomicfuJsIrRuntimeForTests.asPath)
|
systemProperty("atomicfuJsIrRuntimeForTests.classpath", localAtomicfuJsIrRuntimeForTests.asPath)
|
||||||
systemProperty("atomicfuJs.classpath", localAtomicfuJsClasspath.asPath)
|
systemProperty("atomicfuJs.classpath", localAtomicfuJsClasspath.asPath)
|
||||||
systemProperty("atomicfuJvm.classpath", localAtomicfuJvmClasspath.asPath)
|
systemProperty("atomicfuJvm.classpath", localAtomicfuJvmClasspath.asPath)
|
||||||
}
|
}
|
||||||
setUpJsIrBoxTests()
|
|
||||||
}
|
|
||||||
|
|
||||||
val d8Plugin = D8RootPlugin.apply(rootProject)
|
|
||||||
d8Plugin.version = v8Version
|
|
||||||
|
|
||||||
fun Test.setupV8() {
|
|
||||||
dependsOn(d8Plugin.setupTaskProvider)
|
|
||||||
val v8ExecutablePath = d8Plugin.requireConfigured().executablePath.absolutePath
|
|
||||||
doFirst {
|
|
||||||
systemProperty("javascript.engine.path.V8", v8ExecutablePath)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Test.setUpJsIrBoxTests() {
|
|
||||||
setupV8()
|
|
||||||
|
|
||||||
dependsOn(":dist")
|
|
||||||
dependsOn(":kotlin-stdlib-js-ir:compileKotlinJs")
|
|
||||||
systemProperty("kotlin.js.full.stdlib.path", "libraries/stdlib/js-ir/build/classes/kotlin/js/main")
|
|
||||||
dependsOn(":kotlin-stdlib-js-ir-minimal-for-test:compileKotlinJs")
|
|
||||||
systemProperty("kotlin.js.reduced.stdlib.path", "libraries/stdlib/js-ir-minimal-for-test/build/classes/kotlin/js/main")
|
|
||||||
dependsOn(":kotlin-test:kotlin-test-js-ir:compileKotlinJs")
|
|
||||||
systemProperty("kotlin.js.kotlin.test.path", "libraries/kotlin.test/js-ir/build/classes/kotlin/js/main")
|
|
||||||
systemProperty("kotlin.js.kotlin.test.path", "libraries/kotlin.test/js-ir/build/classes/kotlin/js/main")
|
|
||||||
systemProperty("kotlin.js.test.root.out.dir", "$buildDir/")
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.d8.D8RootPlugin
|
|
||||||
|
|
||||||
description = "Kotlin Serialization Compiler Plugin"
|
description = "Kotlin Serialization Compiler Plugin"
|
||||||
|
|
||||||
@@ -9,9 +8,6 @@ plugins {
|
|||||||
id("jps-compatible")
|
id("jps-compatible")
|
||||||
}
|
}
|
||||||
|
|
||||||
val d8Plugin = D8RootPlugin.apply(rootProject)
|
|
||||||
d8Plugin.version = v8Version
|
|
||||||
|
|
||||||
val jsonJsIrRuntimeForTests: Configuration by configurations.creating {
|
val jsonJsIrRuntimeForTests: Configuration by configurations.creating {
|
||||||
attributes {
|
attributes {
|
||||||
attribute(KotlinPlatformType.attribute, KotlinPlatformType.js)
|
attribute(KotlinPlatformType.attribute, KotlinPlatformType.js)
|
||||||
@@ -80,6 +76,7 @@ runtimeJar()
|
|||||||
sourcesJar()
|
sourcesJar()
|
||||||
javadocJar()
|
javadocJar()
|
||||||
testsJar()
|
testsJar()
|
||||||
|
useD8Plugin()
|
||||||
|
|
||||||
projectTest(parallel = true, jUnitMode = JUnitMode.JUnit5) {
|
projectTest(parallel = true, jUnitMode = JUnitMode.JUnit5) {
|
||||||
workingDir = rootDir
|
workingDir = rootDir
|
||||||
@@ -90,22 +87,13 @@ projectTest(parallel = true, jUnitMode = JUnitMode.JUnit5) {
|
|||||||
val generateTests by generator("org.jetbrains.kotlinx.serialization.TestGeneratorKt")
|
val generateTests by generator("org.jetbrains.kotlinx.serialization.TestGeneratorKt")
|
||||||
|
|
||||||
fun Test.setUpJsIrBoxTests() {
|
fun Test.setUpJsIrBoxTests() {
|
||||||
dependsOn(d8Plugin.setupTaskProvider)
|
useJsIrBoxTests(version = version, buildDir = "$buildDir/")
|
||||||
dependsOn(":kotlin-stdlib-js-ir:compileKotlinJs")
|
|
||||||
dependsOn(":kotlin-test:kotlin-test-js-ir:compileKotlinJs")
|
|
||||||
|
|
||||||
val localJsCoreRuntimeForTests: FileCollection = coreJsIrRuntimeForTests
|
val localJsCoreRuntimeForTests: FileCollection = coreJsIrRuntimeForTests
|
||||||
val localJsJsonRuntimeForTests: FileCollection = jsonJsIrRuntimeForTests
|
val localJsJsonRuntimeForTests: FileCollection = jsonJsIrRuntimeForTests
|
||||||
val v8ExecutablePath = d8Plugin.requireConfigured().executablePath.absolutePath
|
|
||||||
|
|
||||||
doFirst {
|
doFirst {
|
||||||
systemProperty("javascript.engine.path.V8", v8ExecutablePath)
|
|
||||||
systemProperty("serialization.core.path", localJsCoreRuntimeForTests.asPath)
|
systemProperty("serialization.core.path", localJsCoreRuntimeForTests.asPath)
|
||||||
systemProperty("serialization.json.path", localJsJsonRuntimeForTests.asPath)
|
systemProperty("serialization.json.path", localJsJsonRuntimeForTests.asPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
systemProperty("kotlin.js.test.root.out.dir", "$buildDir/")
|
|
||||||
systemProperty("kotlin.js.full.stdlib.path", "libraries/stdlib/js-ir/build/classes/kotlin/js/main")
|
|
||||||
systemProperty("kotlin.js.reduced.stdlib.path", "libraries/stdlib/js-ir-minimal-for-test/build/classes/kotlin/js/main")
|
|
||||||
systemProperty("kotlin.js.kotlin.test.path", "libraries/kotlin.test/js-ir/build/classes/kotlin/js/main")
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import org.jetbrains.kotlin.gradle.targets.js.d8.D8RootPlugin
|
|
||||||
import org.gradle.internal.os.OperatingSystem
|
import org.gradle.internal.os.OperatingSystem
|
||||||
import de.undercouch.gradle.tasks.download.Download
|
import de.undercouch.gradle.tasks.download.Download
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -18,6 +17,7 @@ dependencies {
|
|||||||
|
|
||||||
val generationRoot = projectDir.resolve("tests-gen")
|
val generationRoot = projectDir.resolve("tests-gen")
|
||||||
|
|
||||||
|
useD8Plugin()
|
||||||
optInToExperimentalCompilerApi()
|
optInToExperimentalCompilerApi()
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
@@ -28,19 +28,6 @@ sourceSets {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val d8Plugin = D8RootPlugin.apply(rootProject)
|
|
||||||
d8Plugin.version = v8Version
|
|
||||||
|
|
||||||
fun Test.setupV8() {
|
|
||||||
dependsOn(d8Plugin.setupTaskProvider)
|
|
||||||
val v8ExecutablePath = project.provider {
|
|
||||||
d8Plugin.requireConfigured().executablePath.absolutePath
|
|
||||||
}
|
|
||||||
doFirst {
|
|
||||||
systemProperty("javascript.engine.path.V8", v8ExecutablePath.get())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Test.setupWasmStdlib() {
|
fun Test.setupWasmStdlib() {
|
||||||
dependsOn(":kotlin-stdlib-wasm:compileKotlinWasm")
|
dependsOn(":kotlin-stdlib-wasm:compileKotlinWasm")
|
||||||
systemProperty("kotlin.wasm.stdlib.path", "libraries/stdlib/wasm/build/classes/kotlin/wasm/main")
|
systemProperty("kotlin.wasm.stdlib.path", "libraries/stdlib/wasm/build/classes/kotlin/wasm/main")
|
||||||
|
|||||||
Reference in New Issue
Block a user