From 455ed1bdc08cc5f97fc6011a6033473d727f4493 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 23 Aug 2021 13:25:29 +0300 Subject: [PATCH] [Test] Add flag to full pipeline test which allows to use build file instead of regular args --- .../AbstractFullPipelineModularizedTest.kt | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractFullPipelineModularizedTest.kt b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractFullPipelineModularizedTest.kt index 09c36a0a01c..c7c827c833e 100644 --- a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractFullPipelineModularizedTest.kt +++ b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractFullPipelineModularizedTest.kt @@ -22,6 +22,8 @@ import java.io.PrintStream import java.nio.file.Files import java.nio.file.Path +private val USE_BUILD_FILE: Boolean = System.getProperty("fir.bench.use.build.file", "true").toBooleanLenient()!! + abstract class AbstractFullPipelineModularizedTest : AbstractModularizedTest() { private val asyncProfilerControl = AsyncProfilerControl() @@ -126,6 +128,25 @@ abstract class AbstractFullPipelineModularizedTest : AbstractModularizedTest() { } private fun configureBaseArguments(args: K2JVMCompilerArguments, moduleData: ModuleData, tmp: Path) { + args.reportPerf = true + args.jvmTarget = "1.8" + args.allowKotlinPackage = true + if (USE_BUILD_FILE) { + configureArgsUsingBuildFile(args, moduleData, tmp) + } else { + configureRegularArgs(args, moduleData, tmp) + } + } + + private fun configureRegularArgs(args: K2JVMCompilerArguments, moduleData: ModuleData, tmp: Path) { + args.classpath = moduleData.classpath.joinToString(separator = ":") { it.absolutePath } + args.javaSourceRoots = moduleData.javaSourceRoots.map { it.path.absolutePath }.toTypedArray() + args.freeArgs = moduleData.sources.map { it.absolutePath } + args.destination = tmp.toAbsolutePath().toFile().toString() + args.friendPaths = moduleData.friendDirs.map { it.canonicalPath }.toTypedArray() + } + + private fun configureArgsUsingBuildFile(args: K2JVMCompilerArguments, moduleData: ModuleData, tmp: Path) { val builder = KotlinModuleXmlBuilder() builder.addModule( moduleData.name, @@ -142,10 +163,6 @@ abstract class AbstractFullPipelineModularizedTest : AbstractModularizedTest() { ) val modulesFile = tmp.toFile().resolve("modules.xml") modulesFile.writeText(builder.asText().toString()) - - args.reportPerf = true - args.jvmTarget = "1.8" - args.allowKotlinPackage = true args.buildFile = modulesFile.absolutePath } @@ -338,4 +355,4 @@ abstract class AbstractFullPipelineModularizedTest : AbstractModularizedTest() { } -} \ No newline at end of file +}