From 4da8b0850e69017178c5d16efce4273c137895ec Mon Sep 17 00:00:00 2001 From: Svyatoslav Scherbina Date: Thu, 10 Aug 2023 13:47:59 +0200 Subject: [PATCH] Native: make CompareDistributionSignatures task fail on klib tool errors CompareDistributionSignatures task is used to compare Native platform libraries contents against a previous version. Under the hood, it runs the klib tool to get a library contents. But it didn't check the exit code, so if klib tool failed, the task could mistakenly indicate that there are no differences in platform libs. Fix this by checking the klib tool exit code and failing if it is not zero. --- .../org/jetbrains/kotlin/CompareDistributionSignatures.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/CompareDistributionSignatures.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/CompareDistributionSignatures.kt index 5f484a8f7e9..9936b657eb6 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/CompareDistributionSignatures.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/CompareDistributionSignatures.kt @@ -153,7 +153,12 @@ open class CompareDistributionSignatures : DefaultTask() { val tool = if (HostManager.hostIsMingw) "klib.bat" else "klib" val klibTool = File("$newDistribution/bin/$tool").absolutePath val args = listOf("signatures", klib.absolutePath) - return runProcess(localExecutor(project), klibTool, args).stdOut.lines().filter { it.isNotBlank() } + val output = runProcess(localExecutor(project), klibTool, args) + if (output.exitCode != 0) { + logger.error(output.stdErr) + error("Execution failed with exit code: ${output.exitCode}") + } + return output.stdOut.lines().filter { it.isNotBlank() } } private fun looksLikeKotlinNativeDistribution(directory: Path): Boolean {