From ec82d54ef723656688de605356e7664e16c9b281 Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Thu, 23 Nov 2023 16:14:32 +0100 Subject: [PATCH] [Swift Export] Fix test infrastructure according to the review --- .../sir-tests-generator/build.gradle.kts | 28 ++++--------------- .../native/swift/sir/GenerateSirTests.kt | 0 .../swift/sir-analysis-api/build.gradle.kts | 7 ----- .../AbstractKotlinSirContextTest.kt | 4 +-- native/swift/sir-passes/build.gradle.kts | 11 +++++++- .../kotlin/sir/passes/SirPassTests.kt | 24 ++++++++++------ native/swift/sir/build.gradle.kts | 12 +++++--- .../tests/org/jetbrains/kotlin/sir/SirTest.kt | 3 +- 8 files changed, 42 insertions(+), 47 deletions(-) rename generators/sir-tests-generator/{tests => main}/org/jetbrains/kotlin/generators/tests/native/swift/sir/GenerateSirTests.kt (100%) diff --git a/generators/sir-tests-generator/build.gradle.kts b/generators/sir-tests-generator/build.gradle.kts index 0172b37d7d4..6dd1578c5b6 100644 --- a/generators/sir-tests-generator/build.gradle.kts +++ b/generators/sir-tests-generator/build.gradle.kts @@ -5,30 +5,14 @@ plugins { sourceSets { "main" { java.srcDirs("main") } - "test" { projectDefault() } } dependencies { - testApi(projectTests(":native:swift:sir-analysis-api")) - testApi(projectTests(":native:swift:sir-compiler-bridge")) - testImplementation(projectTests(":generators:test-generator")) - - testRuntimeOnly(projectTests(":analysis:analysis-test-framework")) - testImplementation(libs.junit.jupiter.api) + implementation(projectTests(":native:swift:sir-analysis-api")) + implementation(projectTests(":native:swift:sir-compiler-bridge")) + implementation(projectTests(":generators:test-generator")) + runtimeOnly(projectTests(":analysis:analysis-test-framework")) + runtimeOnly(libs.junit.jupiter.api) } -val generateTests by generator("org.jetbrains.kotlin.generators.tests.native.swift.sir.GenerateSirTestsKt") - -testsJar() - -kotlin { - compilerOptions { - freeCompilerArgs.add("-Xcontext-receivers") - } -} - - -projectTest(jUnitMode = JUnitMode.JUnit5) { - workingDir = rootDir - useJUnitPlatform { } -} +val generateTests by generator("org.jetbrains.kotlin.generators.tests.native.swift.sir.GenerateSirTestsKt") \ No newline at end of file diff --git a/generators/sir-tests-generator/tests/org/jetbrains/kotlin/generators/tests/native/swift/sir/GenerateSirTests.kt b/generators/sir-tests-generator/main/org/jetbrains/kotlin/generators/tests/native/swift/sir/GenerateSirTests.kt similarity index 100% rename from generators/sir-tests-generator/tests/org/jetbrains/kotlin/generators/tests/native/swift/sir/GenerateSirTests.kt rename to generators/sir-tests-generator/main/org/jetbrains/kotlin/generators/tests/native/swift/sir/GenerateSirTests.kt diff --git a/native/swift/sir-analysis-api/build.gradle.kts b/native/swift/sir-analysis-api/build.gradle.kts index 65095bdef7d..fa13a260e1e 100644 --- a/native/swift/sir-analysis-api/build.gradle.kts +++ b/native/swift/sir-analysis-api/build.gradle.kts @@ -31,13 +31,6 @@ sourceSets { } } -kotlin { - compilerOptions { - freeCompilerArgs.add("-Xcontext-receivers") - } -} - - projectTest(jUnitMode = JUnitMode.JUnit5) { dependsOn(":dist") workingDir = rootDir diff --git a/native/swift/sir-analysis-api/tests/org/jetbrains/kotlin/sir/analysisapi/AbstractKotlinSirContextTest.kt b/native/swift/sir-analysis-api/tests/org/jetbrains/kotlin/sir/analysisapi/AbstractKotlinSirContextTest.kt index 983f6368b8e..8dae71a94c7 100644 --- a/native/swift/sir-analysis-api/tests/org/jetbrains/kotlin/sir/analysisapi/AbstractKotlinSirContextTest.kt +++ b/native/swift/sir-analysis-api/tests/org/jetbrains/kotlin/sir/analysisapi/AbstractKotlinSirContextTest.kt @@ -49,12 +49,12 @@ abstract class AbstractKotlinSirContextTestBase : AbstractAnalysisApiBasedTest() val ktFiles = moduleStructure.modules .flatMap { testServices.ktModuleProvider.getModuleFiles(it).filterIsInstance() } - val module = buildModule() { + val module = buildModule { val sirFactory = SirGenerator() ktFiles.forEach { file -> declarations += sirFactory.build(file) } - }.build() + } val actual = buildString { module.declarations diff --git a/native/swift/sir-passes/build.gradle.kts b/native/swift/sir-passes/build.gradle.kts index 315b1fbd941..3d2f9338ff2 100644 --- a/native/swift/sir-passes/build.gradle.kts +++ b/native/swift/sir-passes/build.gradle.kts @@ -9,11 +9,20 @@ dependencies { api(project(":native:swift:sir")) - testImplementation(libs.junit4) + testImplementation(kotlin("test-junit5")) + testImplementation(platform(libs.junit.bom)) + testImplementation(libs.junit.jupiter.api) + testRuntimeOnly(libs.junit.jupiter.engine) + testImplementation(projectTests(":compiler:tests-common")) } sourceSets { "main" { projectDefault() } "test" { projectDefault() } +} + +projectTest(jUnitMode = JUnitMode.JUnit5) { + workingDir = rootDir + useJUnitPlatform { } } \ No newline at end of file diff --git a/native/swift/sir-passes/tests/org/jetbrains/kotlin/sir/passes/SirPassTests.kt b/native/swift/sir-passes/tests/org/jetbrains/kotlin/sir/passes/SirPassTests.kt index 484d7d60688..e286748f9bd 100644 --- a/native/swift/sir-passes/tests/org/jetbrains/kotlin/sir/passes/SirPassTests.kt +++ b/native/swift/sir-passes/tests/org/jetbrains/kotlin/sir/passes/SirPassTests.kt @@ -6,25 +6,31 @@ package org.jetbrains.kotlin.sir.passes import org.jetbrains.kotlin.sir.SirElement +import org.jetbrains.kotlin.sir.SirForeignFunction +import org.jetbrains.kotlin.sir.SirOrigin +import org.jetbrains.kotlin.sir.SirVisibility +import org.jetbrains.kotlin.sir.builder.buildForeignFunction import org.jetbrains.sir.passes.SirPass -import org.junit.Test +import kotlin.test.Test import kotlin.test.assertEquals class SirPassTests { @Test fun smoke() { val elementDescription = "mySirElement" - val mySirElement = object : SirElement { - override fun toString(): String { - return elementDescription - } + val mySirElement = buildForeignFunction { + origin = SirOrigin(listOf(elementDescription)) + visibility = SirVisibility.PUBLIC } - val myPass = object : SirPass { - override fun run(element: SirElement, data: Unit): String { - return element.toString() + val myPass = object : SirPass?, Unit> { + override fun run(element: SirElement, data: Unit): List? { + if (element is SirForeignFunction) { + return element.origin.path + } + return null } } val result = myPass.run(mySirElement, Unit) - assertEquals(elementDescription, result) + assertEquals(elementDescription, result?.first()) } } \ No newline at end of file diff --git a/native/swift/sir/build.gradle.kts b/native/swift/sir/build.gradle.kts index 4f91d82ca74..377732d0dc7 100644 --- a/native/swift/sir/build.gradle.kts +++ b/native/swift/sir/build.gradle.kts @@ -7,11 +7,10 @@ description = "Swift Intermediate Representation" dependencies { compileOnly(kotlinStdlib()) - testApi(platform(libs.junit.bom)) + testImplementation(kotlin("test-junit5")) + testImplementation(platform(libs.junit.bom)) testImplementation(libs.junit.jupiter.api) testRuntimeOnly(libs.junit.jupiter.engine) - - testImplementation(projectTests(":compiler:tests-common")) } sourceSets { @@ -20,4 +19,9 @@ sourceSets { generatedDir() } "test" { projectDefault() } -} \ No newline at end of file +} + +projectTest(jUnitMode = JUnitMode.JUnit5) { + workingDir = rootDir + useJUnitPlatform { } +} diff --git a/native/swift/sir/tests/org/jetbrains/kotlin/sir/SirTest.kt b/native/swift/sir/tests/org/jetbrains/kotlin/sir/SirTest.kt index 25547877c9b..bfa07571ac5 100644 --- a/native/swift/sir/tests/org/jetbrains/kotlin/sir/SirTest.kt +++ b/native/swift/sir/tests/org/jetbrains/kotlin/sir/SirTest.kt @@ -5,9 +5,8 @@ package org.jetbrains.kotlin.sir -import org.jetbrains.kotlin.sir.builder.SirEnumBuilder import org.jetbrains.kotlin.sir.builder.buildEnum -import org.junit.Test +import kotlin.test.Test import kotlin.test.assertTrue class SirTest {