Skip to content

Commit f733b96

Browse files
committed
Cleanup
1 parent 50ebf8b commit f733b96

File tree

5 files changed

+61
-62
lines changed

5 files changed

+61
-62
lines changed

docs/design/KLibSupport.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
The document described assumptions that led to the current KLib ABI validation implementation.
1+
The document describes assumptions that led to the current KLib ABI validation implementation.
22

33
### Motivation and assumptions
44

src/functionalTest/kotlin/kotlinx/validation/api/BaseKotlinGradleTest.kt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ import org.junit.Rule
99
import org.junit.rules.TemporaryFolder
1010
import java.io.File
1111

12-
internal const val KLIB_PHONY_TARGET_NAME = "klib"
13-
internal const val KLIB_ALL_PHONY_TARGET_NAME = "klib-all"
14-
1512
public open class BaseKotlinGradleTest {
1613
@Rule
1714
@JvmField
@@ -21,14 +18,7 @@ public open class BaseKotlinGradleTest {
2118

2219
internal val rootProjectApiDump: File get() = rootProjectDir.resolve("$API_DIR/${rootProjectDir.name}.api")
2320

24-
internal fun rootProjectAbiDump(target: String, project: String = rootProjectDir.name): File {
25-
// TODO: rewrite
26-
val suffix = if (target != KLIB_PHONY_TARGET_NAME) "api" else "klib.api"
27-
return rootProjectDir.resolve("$API_DIR/$target/$project.$suffix")
28-
}
29-
3021
internal fun rootProjectAbiDump(project: String = rootProjectDir.name): File {
31-
// TODO: rewrite
3222
return rootProjectDir.resolve("$API_DIR/$project.klib.api")
3323
}
3424
}

src/functionalTest/kotlin/kotlinx/validation/test/KLibVerificationTests.kt

Lines changed: 49 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,15 @@ import kotlin.test.assertTrue
1919

2020
internal const val BANNED_TARGETS_PROPERTY_NAME = "binary.compatibility.validator.klib.targets.blacklist.for.testing"
2121

22-
private fun KLibVerificationTests.checkKlibDump(buildResult: BuildResult, expectedDumpFileName: String,
23-
projectName: String = "testproject",
24-
dumpTask: String = ":apiDump",
25-
projectWithMultipleDumps: Boolean = false) {
22+
private fun KLibVerificationTests.checkKlibDump(
23+
buildResult: BuildResult,
24+
expectedDumpFileName: String,
25+
projectName: String = "testproject",
26+
dumpTask: String = ":apiDump"
27+
) {
2628
buildResult.assertTaskSuccess(dumpTask)
2729

28-
val generatedDump = if (projectWithMultipleDumps) {
29-
rootProjectAbiDump(target = KLIB_PHONY_TARGET_NAME, project = projectName)
30-
} else {
31-
rootProjectAbiDump(projectName)
32-
}
30+
val generatedDump = rootProjectAbiDump(projectName)
3331
assertTrue(generatedDump.exists(), "There are no dumps generated for KLibs")
3432

3533
val expected = readFileList(expectedDumpFileName)
@@ -140,14 +138,10 @@ internal class KLibVerificationTests : BaseKotlinGradleTest() {
140138
}
141139

142140
runner.build().apply {
143-
assertTaskSuccess(":apiDump")
144-
145-
// not common, but built from the common source set
146-
val dump = rootProjectAbiDump("testproject")
147-
assertTrue(dump.exists(), "Dump does not exist")
148-
149-
val expectedDump = readFileList("/examples/classes/AnotherBuildConfigLinuxArm64Extra.klib.dump")
150-
Assertions.assertThat(dump.readText()).isEqualToIgnoringNewLines(expectedDump)
141+
checkKlibDump(
142+
this,
143+
"/examples/classes/AnotherBuildConfigLinuxArm64Extra.klib.dump"
144+
)
151145
}
152146
}
153147

@@ -170,8 +164,7 @@ internal class KLibVerificationTests : BaseKotlinGradleTest() {
170164
}
171165

172166
runner.build().apply {
173-
checkKlibDump(this, "/examples/classes/AnotherBuildConfig.klib.dump",
174-
projectWithMultipleDumps = false)
167+
checkKlibDump(this, "/examples/classes/AnotherBuildConfig.klib.dump")
175168

176169
val jvmApiDump = rootProjectDir.resolve("$API_DIR/testproject.api")
177170
assertTrue(jvmApiDump.exists(), "No API dump for JVM")
@@ -403,7 +396,7 @@ internal class KLibVerificationTests : BaseKotlinGradleTest() {
403396
}
404397

405398
@Test
406-
fun `apiCheck should fail if a target is not supported`() {
399+
fun `apiCheck should not fail if a target is not supported`() {
407400
val runner = test {
408401
settingsGradleKts {
409402
resolve("/examples/gradle/settings/settings-name-testproject.gradle.kts")
@@ -414,15 +407,18 @@ internal class KLibVerificationTests : BaseKotlinGradleTest() {
414407
kotlin("TopLevelDeclarations.kt", "commonMain") {
415408
resolve("/examples/classes/TopLevelDeclarations.kt")
416409
}
417-
abiFile(projectName = "testproject", target = KLIB_PHONY_TARGET_NAME) {
410+
abiFile(projectName = "testproject") {
411+
resolve("/examples/classes/TopLevelDeclarations.klib.dump")
418412
}
419413
runner {
420414
arguments.add("-P$BANNED_TARGETS_PROPERTY_NAME=linuxArm64")
421415
arguments.add(":apiCheck")
422416
}
423417
}
424418

425-
runner.buildAndFail()
419+
runner.build().apply {
420+
assertTaskSuccess(":apiCheck")
421+
}
426422
}
427423

428424
@Test
@@ -501,8 +497,10 @@ internal class KLibVerificationTests : BaseKotlinGradleTest() {
501497
}
502498
}
503499

504-
checkKlibDump(runner.build(), "/examples/classes/TopLevelDeclarations.klib.with.linux.dump",
505-
dumpTask = ":klibApiDump")
500+
checkKlibDump(
501+
runner.build(), "/examples/classes/TopLevelDeclarations.klib.with.linux.dump",
502+
dumpTask = ":klibApiDump"
503+
)
506504
}
507505

508506
@Test
@@ -528,8 +526,10 @@ internal class KLibVerificationTests : BaseKotlinGradleTest() {
528526

529527
runner.buildAndFail().apply {
530528
assertTaskFailure(":linuxArm64ApiInferAbiDump")
531-
Assertions.assertThat(output).contains("The target linuxArm64 is not supported by the host compiler " +
532-
"and there are no targets similar to linuxArm64 to infer a dump from it.")
529+
Assertions.assertThat(output).contains(
530+
"The target linuxArm64 is not supported by the host compiler " +
531+
"and there are no targets similar to linuxArm64 to infer a dump from it."
532+
)
533533
}
534534
}
535535

@@ -546,16 +546,18 @@ internal class KLibVerificationTests : BaseKotlinGradleTest() {
546546
resolve("/examples/classes/TopLevelDeclarations.kt")
547547
}
548548
runner {
549-
arguments.add("-P$BANNED_TARGETS_PROPERTY_NAME=linuxArm64,linuxX64,mingwX64," +
550-
"androidNativeArm32,androidNativeArm64,androidNativeX64,androidNativeX86")
549+
arguments.add(
550+
"-P$BANNED_TARGETS_PROPERTY_NAME=linuxArm64,linuxX64,mingwX64," +
551+
"androidNativeArm32,androidNativeArm64,androidNativeX64,androidNativeX86"
552+
)
551553
arguments.add(":klibApiDump")
552554
}
553555
}
554556

555557
runner.buildAndFail().apply {
556-
Assertions.assertThat(output).contains(
557-
"is not supported by the host compiler and there are no targets similar to"
558-
)
558+
Assertions.assertThat(output).contains(
559+
"is not supported by the host compiler and there are no targets similar to"
560+
)
559561
}
560562
}
561563

@@ -576,8 +578,10 @@ internal class KLibVerificationTests : BaseKotlinGradleTest() {
576578
resolve("/examples/classes/TopLevelDeclarations.klib.dump")
577579
}
578580
runner {
579-
arguments.add("-P$BANNED_TARGETS_PROPERTY_NAME=linuxArm64,linuxX64,mingwX64," +
580-
"androidNativeArm32,androidNativeArm64,androidNativeX64,androidNativeX86")
581+
arguments.add(
582+
"-P$BANNED_TARGETS_PROPERTY_NAME=linuxArm64,linuxX64,mingwX64," +
583+
"androidNativeArm32,androidNativeArm64,androidNativeX64,androidNativeX86"
584+
)
581585
arguments.add(":klibApiCheck")
582586
}
583587
}
@@ -607,8 +611,10 @@ internal class KLibVerificationTests : BaseKotlinGradleTest() {
607611
}
608612
}
609613

610-
checkKlibDump(runner.build(), "/examples/classes/AnotherBuildConfig.klib.clash.dump",
611-
dumpTask = ":klibApiDump")
614+
checkKlibDump(
615+
runner.build(), "/examples/classes/AnotherBuildConfig.klib.clash.dump",
616+
dumpTask = ":klibApiDump"
617+
)
612618
}
613619

614620
@Test
@@ -629,8 +635,10 @@ internal class KLibVerificationTests : BaseKotlinGradleTest() {
629635
}
630636
}
631637

632-
checkKlibDump(runner.build(), "/examples/classes/AnotherBuildConfig.klib.custom.dump",
633-
dumpTask = ":klibApiDump")
638+
checkKlibDump(
639+
runner.build(), "/examples/classes/AnotherBuildConfig.klib.custom.dump",
640+
dumpTask = ":klibApiDump"
641+
)
634642
}
635643

636644
@Test
@@ -656,7 +664,9 @@ internal class KLibVerificationTests : BaseKotlinGradleTest() {
656664
}
657665
}
658666

659-
checkKlibDump(runner.build(), "/examples/classes/AnotherBuildConfigLinux.klib.grouping.dump",
660-
dumpTask = ":klibApiDump")
667+
checkKlibDump(
668+
runner.build(), "/examples/classes/AnotherBuildConfigLinux.klib.grouping.dump",
669+
dumpTask = ":klibApiDump"
670+
)
661671
}
662672
}

src/functionalTest/kotlin/kotlinx/validation/test/NonPublicMarkersTest.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,21 +43,21 @@ class NonPublicMarkersTest : BaseKotlinGradleTest() {
4343
fun testIgnoredMarkersOnPropertiesForNativeTargets() {
4444
val runner = test {
4545
settingsGradleKts {
46-
resolve("examples/gradle/settings/settings-name-testproject.gradle.kts")
46+
resolve("/examples/gradle/settings/settings-name-testproject.gradle.kts")
4747
}
4848

4949
buildGradleKts {
50-
resolve("examples/gradle/base/withNativePlugin.gradle.kts")
51-
resolve("examples/gradle/configuration/nonPublicMarkers/markers.gradle.kts")
50+
resolve("/examples/gradle/base/withNativePlugin.gradle.kts")
51+
resolve("/examples/gradle/configuration/nonPublicMarkers/markers.gradle.kts")
5252
}
5353

5454
kotlin("Properties.kt", sourceSet = "commonMain") {
55-
resolve("examples/classes/Properties.kt")
55+
resolve("/examples/classes/Properties.kt")
5656
}
5757

5858
commonNativeTargets.forEach {
5959
abiFile(projectName = "testproject", target = it) {
60-
resolve("examples/classes/Properties.klib.dump")
60+
resolve("/examples/classes/Properties.klib.dump")
6161
}
6262
}
6363

src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@ import org.jetbrains.kotlin.library.abi.LibraryAbiReader
1818
import java.io.*
1919
import kotlin.text.split
2020

21-
internal const val KLIB_PHONY_TARGET_NAME = "klib"
22-
internal const val KLIB_ALL_PHONY_TARGET_NAME = "klib-all"
23-
2421
public class BinaryCompatibilityValidatorPlugin : Plugin<Project> {
2522

2623
@ExperimentalLibraryAbiReader
@@ -336,7 +333,9 @@ private inline fun <reified T : Task> Project.task(
336333
noinline configuration: T.() -> Unit,
337334
): TaskProvider<T> = tasks.register(name, T::class.java, Action(configuration))
338335

339-
internal const val BANNED_TARGETS_PROPERTY_NAME = "binary.compatibility.validator.klib.targets.blacklist.for.testing"
336+
private const val BANNED_TARGETS_PROPERTY_NAME = "binary.compatibility.validator.klib.targets.blacklist.for.testing"
337+
private const val KLIB_DUMPS_DIRECTORY = "klib"
338+
private const val KLIB_INFERRED_DUMPS_DIRECTORY = "klib-all"
340339

341340
@ExperimentalBCVApi
342341
private class KlibValidationPipelineBuilder(
@@ -349,9 +348,9 @@ private class KlibValidationPipelineBuilder(
349348
// In the intermediate phase of Klib dump generation there are always multiple targets, thus we need
350349
// target-based directory tree.
351350
intermediateFilesConfig = project.provider { DirConfig.TARGET_DIR }
352-
val klibApiDirConfig = dirConfig?.map { TargetConfig(project, extension, KLIB_PHONY_TARGET_NAME, dirConfig) }
353-
val klibDumpConfig = TargetConfig(project, extension, KLIB_PHONY_TARGET_NAME, intermediateFilesConfig)
354-
val klibDumpAllConfig = TargetConfig(project, extension, KLIB_ALL_PHONY_TARGET_NAME, intermediateFilesConfig)
351+
val klibApiDirConfig = dirConfig?.map { TargetConfig(project, extension, KLIB_DUMPS_DIRECTORY, dirConfig) }
352+
val klibDumpConfig = TargetConfig(project, extension, KLIB_DUMPS_DIRECTORY, intermediateFilesConfig)
353+
val klibDumpAllConfig = TargetConfig(project, extension, KLIB_INFERRED_DUMPS_DIRECTORY, intermediateFilesConfig)
355354

356355
val projectDir = project.projectDir
357356
val klibApiDir = klibApiDirConfig?.map {

0 commit comments

Comments
 (0)