[Native][Tests] Always use -Xllvm-variant=dev

FileCheck tests force using dev LLVM distribution. It breaks
invocation of LLVM Clang which tries to look for executable in a wrong
directory. Let's keep things simple and always pass dev variant to our
tests.
This commit is contained in:
Sergey Bogolepov
2023-12-09 15:35:08 +02:00
committed by Space Team
parent 96e5b2be79
commit 30c91e47a9
3 changed files with 8 additions and 6 deletions
@@ -18,7 +18,6 @@ import org.jetbrains.kotlin.konan.test.blackbox.support.runner.TestRunChecks
import org.jetbrains.kotlin.konan.test.blackbox.support.settings.LLDB
import org.jetbrains.kotlin.konan.test.blackbox.support.settings.PipelineType
import org.jetbrains.kotlin.konan.test.blackbox.support.settings.Timeouts
import org.jetbrains.kotlin.konan.test.blackbox.support.settings.configurables
import org.jetbrains.kotlin.konan.test.blackbox.support.util.ClangDistribution
import org.jetbrains.kotlin.konan.test.blackbox.support.util.LLDBSessionSpec
import org.jetbrains.kotlin.konan.test.blackbox.support.util.compileWithClang
@@ -66,6 +66,9 @@ internal abstract class BasicCompilation<A : TestCompilationArtifact>(
add(
"-Xverify-ir=error"
)
// We use dev distribution for tests as it provides a full set of testing utilities,
// which might not be available in user distribution.
add("-Xllvm-variant=dev")
addFlattened(binaryOptions.entries) { (name, value) -> listOf("-Xbinary=$name=$value") }
}
@@ -476,7 +479,6 @@ internal class ExecutableCompilation(
internal fun ArgsBuilder.applyFileCheckArgs(fileCheckStage: String?, fileCheckDump: File?) =
fileCheckStage?.let {
add("-Xllvm-variant=dev") // FileCheck utility is provided in `LLVM dev`, not `LLVM user`
add("-Xsave-llvm-ir-after=$it")
add("-Xsave-llvm-ir-directory=${fileCheckDump!!.parent}")
}
@@ -52,16 +52,17 @@ internal fun AbstractNativeSimpleTest.compileWithClang(
ClangMode.C -> "clang"
ClangMode.CXX -> "clang++"
}
val configurables = testRunSettings.configurables
val clangPath = when (clangDistribution) {
ClangDistribution.Toolchain -> "${testRunSettings.configurables.absoluteTargetToolchain}/bin/$clangExecutableName"
ClangDistribution.Llvm -> "${testRunSettings.configurables.absoluteLlvmHome}/bin/$clangExecutableName"
ClangDistribution.Toolchain -> "${configurables.absoluteTargetToolchain}/bin/$clangExecutableName"
ClangDistribution.Llvm -> "${configurables.absoluteLlvmHome}/bin/$clangExecutableName"
}
val process = ProcessBuilder(
clangPath,
*sourceFiles.map { it.absolutePath }.toTypedArray(),
*includeDirectories.flatMap { listOf("-I", it.absolutePath) }.toTypedArray(),
"-isysroot", testRunSettings.configurables.absoluteTargetSysRoot,
"-target", testRunSettings.configurables.targetTriple.toString(),
"-isysroot", configurables.absoluteTargetSysRoot,
"-target", configurables.targetTriple.toString(),
"-g", "-fmodules",
*frameworkDirectories.flatMap { listOf("-F", it.absolutePath) }.toTypedArray(),
*libraryDirectories.flatMap { listOf("-L", it.absolutePath) }.toTypedArray(),