Skip to content

Commit 0dc8cd9

Browse files
authored
Fix and test cases (Kotlin#136)
Fixes Kotlin#135
1 parent 8fbc5ef commit 0dc8cd9

File tree

4 files changed

+48
-1
lines changed

4 files changed

+48
-1
lines changed

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

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,4 +96,33 @@ internal class IgnoredClassesTests : BaseKotlinGradleTest() {
9696
Assertions.assertThat(rootProjectApiDump.readText()).isEqualToIgnoringNewLines(expected)
9797
}
9898
}
99+
100+
@Test
101+
fun `apiDump should dump class whose name is a subsset of another class that is excluded via ignoredClasses`() {
102+
val runner = test {
103+
buildGradleKts {
104+
resolve("examples/gradle/base/withPlugin.gradle.kts")
105+
resolve("examples/gradle/configuration/ignoredClasses/oneValidFullyQualifiedClass.gradle.kts")
106+
}
107+
kotlin("BuildConfig.kt") {
108+
resolve("examples/classes/BuildConfig.kt")
109+
}
110+
kotlin("BuildCon.kt") {
111+
resolve("examples/classes/BuildCon.kt")
112+
}
113+
114+
runner {
115+
arguments.add(":apiDump")
116+
}
117+
}
118+
119+
runner.build().apply {
120+
assertTaskSuccess(":apiDump")
121+
122+
assertTrue(rootProjectApiDump.exists(), "api dump file should exist")
123+
124+
val expected = readFileList("examples/classes/BuildCon.dump")
125+
Assertions.assertThat(rootProjectApiDump.readText()).isEqualToIgnoringNewLines(expected)
126+
}
127+
}
99128
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
public final class com/company/BuildCon {
2+
public fun <init> ()V
3+
public final fun f1 ()I
4+
public final fun getP1 ()I
5+
}
6+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* Copyright 2016-2020 JetBrains s.r.o.
3+
* Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file.
4+
*/
5+
6+
package com.company
7+
8+
public class BuildCon {
9+
public val p1 = 1
10+
11+
public fun f1() = p1
12+
}

src/main/kotlin/api/KotlinSignaturesLoading.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ private fun ClassBinarySignature.isInPackages(packageNames: Collection<String>):
244244
packageNames.any { packageName -> name.startsWith(packageName) }
245245

246246
private fun ClassBinarySignature.isInClasses(classNames: Collection<String>): Boolean =
247-
classNames.any { className -> className.startsWith(name) }
247+
classNames.any { className -> className.startsWith("$name/") }
248248

249249
private fun JarFile.classEntries() = Sequence { entries().iterator() }.filter {
250250
!it.isDirectory && it.name.endsWith(".class") && !it.name.startsWith("META-INF/")

0 commit comments

Comments
 (0)