Skip to content

Commit

Permalink
Improved test coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
fzhinkin committed Feb 5, 2024
1 parent 89c588e commit 0a2d44f
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,9 @@ internal class KLibVerificationTests : BaseKotlinGradleTest() {
}
}

runner.buildAndFail()
runner.buildAndFail().apply {
Assertions.assertThat(output).contains("Unsupported KLib signature version '100500'")
}
}

@Test
Expand Down Expand Up @@ -669,4 +671,51 @@ internal class KLibVerificationTests : BaseKotlinGradleTest() {
dumpTask = ":klibApiDump"
)
}

@Test
fun `apiDump should work with web targets`() {
val runner = test {
settingsGradleKts {
resolve("/examples/gradle/settings/settings-name-testproject.gradle.kts")
}
buildGradleKts {
resolve("/examples/gradle/base/withNativePlugin.gradle.kts")
resolve("/examples/gradle/configuration/nonNativeKlibTargets/targets.gradle.kts")
}
kotlin("AnotherBuildConfig.kt", "commonMain") {
resolve("/examples/classes/AnotherBuildConfig.kt")
}
runner {
arguments.add(":apiDump")
}
}

checkKlibDump(runner.build(), "/examples/classes/AnotherBuildConfig.klib.web.dump")
}

@Test
fun `apiCheck should work with web targets`() {
val runner = test {
settingsGradleKts {
resolve("/examples/gradle/settings/settings-name-testproject.gradle.kts")
}
buildGradleKts {
resolve("/examples/gradle/base/withNativePlugin.gradle.kts")
resolve("/examples/gradle/configuration/nonNativeKlibTargets/targets.gradle.kts")
}
kotlin("AnotherBuildConfig.kt", "commonMain") {
resolve("/examples/classes/AnotherBuildConfig.kt")
}
abiFile(projectName = "testproject") {
resolve("/examples/classes/AnotherBuildConfig.klib.web.dump")
}
runner {
arguments.add(":apiCheck")
}
}

runner.build().apply {
assertTaskSuccess(":apiCheck")
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Merged KLib ABI Dump
// Targets: [androidNativeArm32, androidNativeArm64, androidNativeX64, androidNativeX86, js, linuxArm64, linuxX64, mingwX64, wasmJs, wasmWasi]
// Alias: native => [androidNativeArm32, androidNativeArm64, androidNativeX64, androidNativeX86, linuxArm64, linuxX64, mingwX64]
// Alias: androidNative => [androidNativeArm32, androidNativeArm64, androidNativeX64, androidNativeX86]
// Alias: linux => [linuxArm64, linuxX64]
// Rendering settings:
// - Signature version: 2
// - Show manifest properties: false
// - Show declarations: true

// Library unique name: <testproject>
final class org.different.pack/BuildConfig { // org.different.pack/BuildConfig|null[0]
constructor <init>() // org.different.pack/BuildConfig.<init>|<init>(){}[0]
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
final val p1 // org.different.pack/BuildConfig.p1|{}p1[0]
final fun <get-p1>(): kotlin/Int // org.different.pack/BuildConfig.p1.<get-p1>|<get-p1>(){}[0]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/*
* Copyright 2016-2024 JetBrains s.r.o.
* Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file.
*/

kotlin {
wasmWasi()
wasmJs()
js()
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,7 @@
*/

configure<kotlinx.validation.ApiValidationExtension> {
klibSignatureVersion = 100500
klib {
signatureVersion = 100500
}
}

0 comments on commit 0a2d44f

Please sign in to comment.