Minor. Extract runJvmInstance for running BB tests with custom JVM

This commit is contained in:
Denis.Zharkov
2020-12-08 12:09:22 +03:00
parent 6e4f84dddf
commit ac0604377d
@@ -56,26 +56,37 @@ abstract class AbstractCustomJDKBlackBoxCodegenTest : AbstractBlackBoxCodegenTes
val fileFactory = generateClassesInFile()
fileFactory.writeAll(tmpdir, null)
val jdkHome = getJdkHome()
val javaExe = File(jdkHome, "bin/java.exe").takeIf(File::exists)
?: File(jdkHome, "bin/java").takeIf(File::exists)
?: error("Can't find 'java' executable in $jdkHome")
val command = arrayOf(
javaExe.absolutePath,
"-ea",
*getAdditionalJvmArgs().toTypedArray(),
"-classpath",
listOfNotNull(
runJvmInstance(
getJdkHome(), getAdditionalJvmArgs(),
classPath = listOfNotNull(
tmpdir, ForTestCompileRuntime.runtimeJarForTests(),
javaClassesOutputDirectory
).joinToString(File.pathSeparator, transform = File::getAbsolutePath),
getFacadeFqName(myFiles.psiFile)
),
classNameToRun = getFacadeFqName(myFiles.psiFile)!!
)
val process = ProcessBuilder(*command).inheritIO().start()
process.waitFor(1, TimeUnit.MINUTES)
assertEquals(0, process.exitValue())
}
}
internal fun runJvmInstance(
jdkHome: File,
additionalArgs: List<String>,
classPath: List<File>,
classNameToRun: String,
) {
val javaExe = File(jdkHome, "bin/java.exe").takeIf(File::exists)
?: File(jdkHome, "bin/java").takeIf(File::exists)
?: error("Can't find 'java' executable in $jdkHome")
val command = arrayOf(
javaExe.absolutePath,
"-ea",
*additionalArgs.toTypedArray(),
"-classpath",
classPath.joinToString(File.pathSeparator, transform = File::getAbsolutePath),
classNameToRun,
)
val process = ProcessBuilder(*command).inheritIO().start()
process.waitFor(1, TimeUnit.MINUTES)
AbstractBlackBoxCodegenTest.assertEquals(0, process.exitValue())
}