File tree Expand file tree Collapse file tree 4 files changed +48
-1
lines changed
kotlin/kotlinx/validation/test
resources/examples/classes Expand file tree Collapse file tree 4 files changed +48
-1
lines changed Original file line number Diff line number Diff line change @@ -96,4 +96,33 @@ internal class IgnoredClassesTests : BaseKotlinGradleTest() {
96
96
Assertions .assertThat(rootProjectApiDump.readText()).isEqualToIgnoringNewLines(expected)
97
97
}
98
98
}
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
+ }
99
128
}
Original file line number Diff line number Diff line change
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
+
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change @@ -244,7 +244,7 @@ private fun ClassBinarySignature.isInPackages(packageNames: Collection<String>):
244
244
packageNames.any { packageName -> name.startsWith(packageName) }
245
245
246
246
private fun ClassBinarySignature.isInClasses (classNames : Collection <String >): Boolean =
247
- classNames.any { className -> className.startsWith(name) }
247
+ classNames.any { className -> className.startsWith(" $ name/ " ) }
248
248
249
249
private fun JarFile.classEntries () = Sequence { entries().iterator() }.filter {
250
250
! it.isDirectory && it.name.endsWith(" .class" ) && ! it.name.startsWith(" META-INF/" )
You can’t perform that action at this time.
0 commit comments