Skip to content

Commit 682c709

Browse files
demiurg906Space Team
authored andcommitted
[Test] Strip the snapshot version from library name in AA tests
1 parent 1b35914 commit 682c709

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

analysis/analysis-api-impl-base/testFixtures/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/symbols/AbstractSymbolTest.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerPro
3434
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode
3535
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind
3636
import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction
37+
import org.jetbrains.kotlin.analysis.test.framework.utils.stripOutSnapshotVersion
3738
import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint
3839
import org.jetbrains.kotlin.psi.*
3940
import org.jetbrains.kotlin.test.directives.model.Directive
@@ -44,6 +45,7 @@ import org.jetbrains.kotlin.test.services.TestServices
4445
import org.jetbrains.kotlin.test.services.assertions
4546
import org.jetbrains.kotlin.test.services.moduleStructure
4647
import org.jetbrains.kotlin.utils.addIfNotNull
48+
import org.jetbrains.kotlin.utils.addToStdlib.applyIf
4749
import org.jetbrains.kotlin.utils.exceptions.KotlinIllegalArgumentExceptionWithAttachments
4850
import org.jetbrains.kotlin.utils.mapToSetOrEmpty
4951
import org.opentest4j.AssertionFailedError
@@ -285,7 +287,9 @@ abstract class AbstractSymbolTest : AbstractAnalysisApiBasedTest() {
285287
}
286288

287289
private fun List<PointerWithRenderedSymbol>.renderDeclarations(): String =
288-
mapNotNull { it.rendered.takeIf { _ -> it.shouldBeRendered } }.renderAsDeclarations()
290+
mapNotNull { it.rendered.takeIf { _ -> it.shouldBeRendered } }
291+
.renderAsDeclarations()
292+
.applyIf(configurator.frontendKind == FrontendKind.Fe10) { stripOutSnapshotVersion() }
289293

290294
private fun List<String>.renderAsDeclarations(): String =
291295
if (isEmpty()) "NO_SYMBOLS"

analysis/analysis-test-framework/testFixtures/org/jetbrains/kotlin/analysis/test/framework/projectStructure/TestModuleStructureFactory.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.analysis.test.framework.hasFallbackDependencies
1616
import org.jetbrains.kotlin.analysis.test.framework.projectStructure.TestModuleStructureFactory.addLibraryDependencies
1717
import org.jetbrains.kotlin.analysis.test.framework.projectStructure.TestModuleStructureFactory.getScopeForLibraryByRoots
1818
import org.jetbrains.kotlin.analysis.test.framework.services.environmentManager
19+
import org.jetbrains.kotlin.analysis.test.framework.utils.stripOutSnapshotVersion
1920
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
2021
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
2122
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
@@ -220,7 +221,7 @@ object TestModuleStructureFactory {
220221
): KaLibraryModuleImpl {
221222
check(libraryFile.exists()) { "Library $libraryFile does not exist" }
222223

223-
val libraryName = libraryFile.nameWithoutExtension
224+
val libraryName = libraryFile.nameWithoutExtension.stripOutSnapshotVersion()
224225
val libraryScope = getScopeForLibraryByRoots(project, listOf(libraryFile), testServices)
225226
return KaLibraryModuleImpl(libraryName, platform, libraryScope, project, listOf(libraryFile), librarySources = null, isSdk = false)
226227
}

analysis/analysis-test-framework/testFixtures/org/jetbrains/kotlin/analysis/test/framework/utils/commonTestUtils.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ fun KtElement.renderLocationDescription(): String {
7979
?: error("Expected a JAR file path for a virtual file in a JAR file system: ${virtualFile.path}")
8080
} else {
8181
virtualFile.name
82-
}
82+
}.stripOutSnapshotVersion()
8383

8484
return buildString {
8585
append("'$fileDescription'")
@@ -136,4 +136,13 @@ fun <T, R> Collection<T>.singleOrZeroValue(
136136
newCollection.joinTo(this, separator = "\n", transform = ambiguityValueRenderer)
137137
})
138138
}
139-
}
139+
}
140+
141+
private val snapshotVersionRegex: Regex = """-2\.\d\.\d+-(\w+-\d+|SNAPSHOT)""".toRegex()
142+
143+
/**
144+
* Removes version suffix from kotlin libraries, like stdlib or kotlin-reflect:
145+
* kotlin-stdlib-2.3.255-SNAPSHOT -> kotlin-stdlib
146+
* kotlin-stdlib-2.3.0-dev-1234 -> kotlin-stdlib
147+
*/
148+
fun String.stripOutSnapshotVersion(): String = replace(snapshotVersionRegex, "")

0 commit comments

Comments
 (0)