Skip to content

Commit 1ebf003

Browse files
committed
Add Kotlin/JS box tests
1 parent ad14616 commit 1ebf003

File tree

5 files changed

+91
-0
lines changed

5 files changed

+91
-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
kotlin("multiplatform") version "2.3.0-Beta1" apply false
33
kotlin("jvm") version "2.3.0-Beta1" apply false
44
id("com.github.gmazzo.buildconfig") version "5.6.5"
5+
id("com.github.node-gradle.node") version "7.0.2" apply false
56
id("org.jetbrains.kotlinx.binary-compatibility-validator") version "0.16.3" 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: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package org.jetbrains.kotlin.compiler.plugin.template.runners
2+
3+
import org.jetbrains.kotlin.compiler.plugin.template.services.ExtensionRegistrarConfigurator
4+
import org.jetbrains.kotlin.compiler.plugin.template.services.PluginAnnotationsProvider
5+
import org.jetbrains.kotlin.js.test.fir.AbstractFirLightTreeJsBoxTest
6+
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
7+
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
8+
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
9+
import org.jetbrains.kotlin.test.services.EnvironmentBasedStandardLibrariesPathProvider
10+
import org.jetbrains.kotlin.test.services.KotlinStandardLibrariesPathProvider
11+
12+
open class AbstractJsBoxTest : AbstractFirLightTreeJsBoxTest() {
13+
override fun createKotlinStandardLibrariesPathProvider(): KotlinStandardLibrariesPathProvider {
14+
return EnvironmentBasedStandardLibrariesPathProvider
15+
}
16+
17+
override fun configure(builder: TestConfigurationBuilder) {
18+
super.configure(builder)
19+
20+
with(builder) {
21+
/*
22+
* Containers of different directives, which can be used in tests:
23+
* - ModuleStructureDirectives
24+
* - LanguageSettingsDirectives
25+
* - DiagnosticsDirectives
26+
* - FirDiagnosticsDirectives
27+
* - CodegenTestDirectives
28+
* - JvmEnvironmentConfigurationDirectives
29+
*
30+
* All of them are located in `org.jetbrains.kotlin.test.directives` package
31+
*/
32+
defaultDirectives {
33+
+CodegenTestDirectives.DUMP_IR
34+
+FirDiagnosticsDirectives.FIR_DUMP
35+
}
36+
37+
useConfigurators(
38+
::PluginAnnotationsProvider,
39+
::ExtensionRegistrarConfigurator
40+
)
41+
}
42+
}
43+
}
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+
}

0 commit comments

Comments
 (0)