[KLIB tool] Migrate 'dump-metadata' tests to K/N test infra
This commit is contained in:
committed by
Space Team
parent
57e004e2b0
commit
aa9b901926
+26
-7
@@ -34,8 +34,11 @@ abstract class AbstractNativeKlibDumpMetadataTest : AbstractNativeSimpleTest() {
|
||||
|
||||
val kotlinNativeClassLoader = testRunSettings.get<KotlinNativeClassLoader>()
|
||||
val metadata = testCompilationResult.assertSuccess().resultingArtifact.dumpMetadata(kotlinNativeClassLoader.classLoader)
|
||||
val metadataFiltered = filterContentsOutput(metadata, linestoExclude = listOf("package test {", "}", ""))
|
||||
assertEqualsToFile(File("${testPathFull.canonicalPath.substringBeforeLast(".")}.txt"), StringUtilRt.convertLineSeparators(metadataFiltered))
|
||||
val metadataFiltered = filterOutput(metadata)
|
||||
assertEqualsToFile(
|
||||
File("${testPathFull.canonicalPath.substringBeforeLast(".")}.txt"),
|
||||
StringUtilRt.convertLineSeparators(metadataFiltered)
|
||||
)
|
||||
}
|
||||
|
||||
private fun generateTestCaseWithSingleSource(source: File, extraArgs: List<String>): TestCase {
|
||||
@@ -56,9 +59,25 @@ abstract class AbstractNativeKlibDumpMetadataTest : AbstractNativeSimpleTest() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun filterContentsOutput(contents: String, linestoExclude: List<String>) =
|
||||
contents.lines()
|
||||
.filterNot { line ->
|
||||
linestoExclude.any { exclude -> exclude == line }
|
||||
}.joinToString(separator = "\n")
|
||||
// Remove intermediate "}\n\npackage ABC {\n" parts.
|
||||
private fun filterOutput(contents: String): String {
|
||||
var packageLineMet = false
|
||||
return contents.lineSequence()
|
||||
.dropWhile { line -> line.isBlank() }
|
||||
.filter { line ->
|
||||
when {
|
||||
line.isBlank() -> false
|
||||
line.startsWith("package ") -> {
|
||||
if (packageLineMet)
|
||||
false
|
||||
else {
|
||||
packageLineMet = true
|
||||
true
|
||||
}
|
||||
}
|
||||
line == "}" -> false
|
||||
else -> true
|
||||
}
|
||||
}.joinToString(separator = "\n", postfix = "\n}")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user