@@ -22,7 +22,7 @@ import kotlin.time.Duration
2222class InstrumentationProcessRunner (
2323 private val testingProjectClasspath : String ,
2424 private val jcClasspath : JcClasspath ,
25- private val javaHome : String ,
25+ private val instrumentationProcessPaths : InstrumentationProcessPaths ,
2626 private val jcPersistenceLocation : String? ,
2727 private val instrumentationClassFactory : KClass <out JcInstrumenterFactory <out JcInstrumenter >>
2828) {
@@ -33,13 +33,13 @@ class InstrumentationProcessRunner(
3333 constructor (
3434 testingProjectClasspath: List <String >,
3535 jcClasspath: JcClasspath ,
36- javaHome : String ,
36+ instrumentationProcessPaths : InstrumentationProcessPaths ,
3737 jcPersistenceLocation: String? ,
3838 instrumentationClassFactory: KClass <JcInstrumenterFactory <out JcInstrumenter >>
3939 ) : this (
4040 testingProjectClasspath.joinToString(File .pathSeparator),
4141 jcClasspath,
42- javaHome ,
42+ instrumentationProcessPaths ,
4343 jcPersistenceLocation,
4444 instrumentationClassFactory
4545 )
@@ -49,14 +49,14 @@ class InstrumentationProcessRunner(
4949 private val jvmArgs: List <String > by lazy {
5050 val instrumentationClassNameFactoryName = instrumentationClassFactory.java.name
5151 val memoryLimit = listOf (" -Xmx1g" )
52- val pathToJava = Paths .get(InstrumentationModuleConstants .pathToJava)
52+ val pathToJava = Paths .get(instrumentationProcessPaths .pathToJava)
5353 val usvmClasspath = System .getProperty(" java.class.path" )
5454 val javaVersionSpecificArguments = OpenModulesContainer .javaVersionSpecificArguments
5555 val instrumentedProcessClassName =
5656 InstrumentedProcess ::class .qualifiedName ? : error(" Can't find instumented process" )
5757 listOf (pathToJava.resolve(" bin${File .separatorChar}${osSpecificJavaExecutable()} " ).toString()) +
5858 listOf (" -ea" ) +
59- listOf (" -javaagent:${InstrumentationModuleConstants .pathToUsvmInstrumentationJar} =$instrumentationClassNameFactoryName " ) +
59+ listOf (" -javaagent:${instrumentationProcessPaths .pathToUsvmInstrumentationJar} =$instrumentationClassNameFactoryName " ) +
6060 memoryLimit +
6161 javaVersionSpecificArguments +
6262 listOf (" -classpath" , usvmClasspath) +
@@ -67,7 +67,7 @@ class InstrumentationProcessRunner(
6767 this + = listOf (" -cp" , testingProjectClasspath)
6868 this + = listOf (" -t" , " ${InstrumentationModuleConstants .concreteExecutorProcessTimeout} " )
6969 this + = listOf (" -p" , " $rdPort " )
70- this + = listOf (" -javahome" , javaHome )
70+ this + = listOf (" -javahome" , instrumentationProcessPaths.pathToJava )
7171
7272 if (jcPersistenceLocation != null ) {
7373 this + = listOf (" -persistence" , jcPersistenceLocation)
@@ -80,6 +80,8 @@ class InstrumentationProcessRunner(
8080 val rdPort = NetUtils .findFreePort(0 )
8181 val workerCommand = jvmArgs + createWorkerProcessArgs(rdPort)
8282 val pb = ProcessBuilder (workerCommand).inheritIO()
83+ pb.environment()[InstrumentationModuleConstants .envVarForPathToUsvmCollectorsJarPath] =
84+ instrumentationProcessPaths.pathToUsvmCollectorsJar
8385 val process = pb.start()
8486 rdProcessRunner =
8587 RdProcessRunner (process = process, rdPort = rdPort, jcClasspath = jcClasspath, lifetime = processLifetime)
0 commit comments