Skip to content

Commit 4b0b400

Browse files
committed
Add Kotlin/JS box tests
1 parent 23fe96a commit 4b0b400

File tree

6 files changed

+89
-0
lines changed

6 files changed

+89
-0
lines changed

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ plugins {
22
alias(libs.plugins.kotlin.multiplatform) apply false
33
alias(libs.plugins.kotlin.jvm) apply false
44
alias(libs.plugins.build.config)
5+
alias(libs.plugins.node.gradle)
56
alias(libs.plugins.binary.compatibility.validator) apply false
67
}
78

compiler-plugin/build.gradle.kts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ plugins {
22
kotlin("jvm")
33
`java-test-fixtures`
44
id("com.github.gmazzo.buildconfig")
5+
id("com.github.node-gradle.node")
56
idea
67
}
78

@@ -42,6 +43,9 @@ dependencies {
4243
testArtifacts(kotlin("test"))
4344
testArtifacts(kotlin("script-runtime"))
4445
testArtifacts(kotlin("annotations-jvm"))
46+
47+
testArtifacts(kotlin("stdlib-js"))
48+
testArtifacts(kotlin("test-js"))
4549
}
4650

4751
buildConfig {
@@ -69,6 +73,10 @@ tasks.test {
6973
setLibraryProperty("org.jetbrains.kotlin.test.kotlin-script-runtime", "kotlin-script-runtime")
7074
setLibraryProperty("org.jetbrains.kotlin.test.kotlin-annotations-jvm", "kotlin-annotations-jvm")
7175

76+
setLibraryProperty("org.jetbrains.kotlin.test.kotlin-stdlib-js", "kotlin-stdlib-js")
77+
setLibraryProperty("org.jetbrains.kotlin.test.kotlin-test-js", "kotlin-test-js")
78+
79+
systemProperty("kotlin.js.test.root.out.dir", "${node.nodeProjectDir.get().asFile}/")
7280
systemProperty("idea.ignore.disabled.plugins", "true")
7381
systemProperty("idea.home.path", rootDir)
7482
}

compiler-plugin/test-fixtures/org/jetbrains/kotlin/compiler/plugin/template/GenerateTests.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.jetbrains.kotlin.compiler.plugin.template
22

3+
import org.jetbrains.kotlin.compiler.plugin.template.runners.AbstractJsBoxTest
34
import org.jetbrains.kotlin.compiler.plugin.template.runners.AbstractJvmBoxTest
45
import org.jetbrains.kotlin.compiler.plugin.template.runners.AbstractJvmDiagnosticTest
56
import org.jetbrains.kotlin.generators.dsl.junit5.generateTestGroupSuiteWithJUnit5
@@ -14,6 +15,10 @@ fun main() {
1415
testClass<AbstractJvmBoxTest> {
1516
model("box")
1617
}
18+
19+
testClass<AbstractJsBoxTest> {
20+
model("box")
21+
}
1722
}
1823
}
1924
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package org.jetbrains.kotlin.compiler.plugin.template.runners
2+
3+
import org.jetbrains.kotlin.compiler.plugin.template.services.configurePlugin
4+
import org.jetbrains.kotlin.js.test.fir.AbstractFirLightTreeJsBoxTest
5+
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
6+
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
7+
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
8+
import org.jetbrains.kotlin.test.services.EnvironmentBasedStandardLibrariesPathProvider
9+
import org.jetbrains.kotlin.test.services.KotlinStandardLibrariesPathProvider
10+
11+
open class AbstractJsBoxTest : AbstractFirLightTreeJsBoxTest() {
12+
override fun createKotlinStandardLibrariesPathProvider(): KotlinStandardLibrariesPathProvider {
13+
return EnvironmentBasedStandardLibrariesPathProvider
14+
}
15+
16+
override fun configure(builder: TestConfigurationBuilder) {
17+
super.configure(builder)
18+
19+
with(builder) {
20+
/*
21+
* Containers of different directives, which can be used in tests:
22+
* - ModuleStructureDirectives
23+
* - LanguageSettingsDirectives
24+
* - DiagnosticsDirectives
25+
* - FirDiagnosticsDirectives
26+
* - CodegenTestDirectives
27+
* - JvmEnvironmentConfigurationDirectives
28+
*
29+
* All of them are located in `org.jetbrains.kotlin.test.directives` package
30+
*/
31+
defaultDirectives {
32+
+CodegenTestDirectives.DUMP_IR
33+
+FirDiagnosticsDirectives.FIR_DUMP
34+
}
35+
36+
configurePlugin()
37+
}
38+
}
39+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
2+
3+
package org.jetbrains.kotlin.compiler.plugin.template.runners;
4+
5+
import com.intellij.testFramework.TestDataPath;
6+
import org.jetbrains.kotlin.test.util.KtTestUtil;
7+
import org.jetbrains.kotlin.test.TestMetadata;
8+
import org.junit.jupiter.api.Test;
9+
10+
import java.io.File;
11+
import java.util.regex.Pattern;
12+
13+
/** This class is generated by {@link org.jetbrains.kotlin.compiler.plugin.template.GenerateTestsKt}. DO NOT MODIFY MANUALLY */
14+
@SuppressWarnings("all")
15+
@TestMetadata("compiler-plugin/testData/box")
16+
@TestDataPath("$PROJECT_ROOT")
17+
public class JsBoxTestGenerated extends AbstractJsBoxTest {
18+
@Test
19+
public void testAllFilesPresentInBox() {
20+
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler-plugin/testData/box"), Pattern.compile("^(.+)\\.kt$"), null, true);
21+
}
22+
23+
@Test
24+
@TestMetadata("anotherBoxTest.kt")
25+
public void testAnotherBoxTest() {
26+
runTest("compiler-plugin/testData/box/anotherBoxTest.kt");
27+
}
28+
29+
@Test
30+
@TestMetadata("simple.kt")
31+
public void testSimple() {
32+
runTest("compiler-plugin/testData/box/simple.kt");
33+
}
34+
}

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[versions]
22
kotlin = "2.3.0-Beta2"
33
build-config = "5.6.5"
4+
node-gradle = "7.0.2"
45
bcv = "0.16.3"
56

67
[libraries]
@@ -9,4 +10,5 @@ bcv = "0.16.3"
910
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
1011
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
1112
build-config = { id = "com.github.gmazzo.buildconfig", version.ref = "build-config" }
13+
node-gradle = { id = "com.github.node-gradle.node", version.ref = "node-gradle" }
1214
binary-compatibility-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "bcv" }

0 commit comments

Comments
 (0)