@@ -11,11 +11,33 @@ trait RunJdkTestDefinitions { _: RunTestDefinitions =>
1111 s " zulu: $javaVersion"
1212 else javaVersion.toString
1313
14+ def canUseScalaInstallationWrapper : Boolean =
15+ actualScalaVersion.startsWith(" 3" ) && actualScalaVersion.split('.' ).drop(1 ).head.toInt >= 5
16+
1417 for {
1518 javaVersion <- Constants .allJavaVersions
1619 index = javaIndex(javaVersion)
20+ useScalaInstallationWrapper <-
21+ if (canUseScalaInstallationWrapper) Seq (false , true ) else Seq (false )
22+ launcherString = if (useScalaInstallationWrapper) " coursier scala installation" else " Scala CLI"
23+ scalaRunnerWrapperVersion = actualScalaVersion match {
24+ case v if v == Constants .scala3NextRc => Constants .scala3NextRcAnnounced
25+ case v if v == Constants .scala3Next => Constants .scala3NextAnnounced
26+ case v => v
27+ }
28+ withLauncher = (root : os.Path ) =>
29+ (f : Seq [os.Shellable ] => Unit ) =>
30+ if (useScalaInstallationWrapper)
31+ withScalaRunnerWrapper(
32+ root = root,
33+ localBin = root / " local-bin" ,
34+ scalaVersion = scalaRunnerWrapperVersion,
35+ shouldCleanUp = false
36+ )(launcher => f(Seq (launcher)))
37+ else
38+ f(Seq (TestUtil .cli))
1739 } {
18- test(s " correct JVM is picked up when JAVA_HOME set to $index" ) {
40+ test(s " correct JVM is picked up by $launcherString when JAVA_HOME set to $index" ) {
1941 TestUtil .retryOnCi() {
2042 TestInputs (
2143 os.rel / " check_java_home.sc" ->
@@ -30,25 +52,33 @@ trait RunJdkTestDefinitions { _: RunTestDefinitions =>
3052 os.proc(TestUtil .cs, " java-home" , " --jvm" , index).call().out.trim(),
3153 os.pwd
3254 )
33- val res = os.proc(TestUtil .cli, " run" , " ." , extraOptions)
55+ withLauncher(root) { launcher =>
56+ val res = os.proc(launcher, " run" , " ." , extraOptions)
3457 .call(cwd = root, env = Map (" JAVA_HOME" -> javaHome.toString))
3558 expect(res.out.trim().contains(javaHome.toString))
59+ }
3660 }
3761 }
3862 }
3963
40- test(s " hello world with --jvm $index" ) {
41- val expectedMessage = " Hello, world!"
42- TestInputs (
43- os.rel / " hello_world.sc" -> s " println( \" $expectedMessage\" ) "
44- ).fromRoot { root =>
45- val res = os.proc(TestUtil .cli, " run" , " ." , extraOptions, " --jvm" , javaVersion)
46- .call(cwd = root)
47- expect(res.out.trim() == expectedMessage)
64+ test(s " hello world with $launcherString and --jvm $index" ) {
65+ TestUtil .retryOnCi() {
66+ val expectedMessage = " Hello, world!"
67+ TestInputs (
68+ os.rel / " hello_world.sc" -> s " println( \" $expectedMessage\" ) "
69+ ).fromRoot { root =>
70+ withLauncher(root) { launcher =>
71+ val res = os.proc(launcher, " run" , " ." , extraOptions, " --jvm" , javaVersion)
72+ .call(cwd = root)
73+ expect(res.out.trim() == expectedMessage)
74+ }
75+ }
4876 }
4977 }
5078
51- test(s " correct JVM is picked up when Java $index is passed with --java-home " ) {
79+ test(
80+ s " correct JVM is picked up by $launcherString when Java $index is passed with --java-home "
81+ ) {
5282 TestUtil .retryOnCi() {
5383 TestInputs (
5484 os.rel / " check_java_home.sc" ->
@@ -63,10 +93,11 @@ trait RunJdkTestDefinitions { _: RunTestDefinitions =>
6393 os.proc(TestUtil .cs, " java-home" , " --jvm" , index).call().out.trim(),
6494 os.pwd
6595 )
66- val res =
67- os.proc(TestUtil .cli , " run" , " ." , extraOptions, " --java-home" , javaHome.toString)
96+ withLauncher(root) { launcher =>
97+ val res = os.proc(launcher , " run" , " ." , extraOptions, " --java-home" , javaHome.toString)
6898 .call(cwd = root)
69- expect(res.out.trim().contains(javaHome.toString))
99+ expect(res.out.trim().contains(javaHome.toString))
100+ }
70101 }
71102 }
72103 }
@@ -78,19 +109,21 @@ trait RunJdkTestDefinitions { _: RunTestDefinitions =>
78109 TestInputs (os.rel / " check_java_home.sc" -> s """ println(" $expectedMessage") """ )
79110 .fromRoot { root =>
80111 os.proc(TestUtil .cli, " bloop" , " exit" , " --power" ).call(cwd = root)
81- val res = os.proc(
82- TestUtil .cli,
83- " run" ,
84- " ." ,
85- extraOptions,
86- " --bloop-jvm" ,
87- index,
88- " --jvm" ,
89- index
90- )
91- .call(cwd = root, stderr = os.Pipe )
92- expect(res.err.trim().contains(javaVersion.toString))
93- expect(res.out.trim() == expectedMessage)
112+ withLauncher(root) { launcher =>
113+ val res = os.proc(
114+ launcher,
115+ " run" ,
116+ " ." ,
117+ extraOptions,
118+ " --bloop-jvm" ,
119+ index,
120+ " --jvm" ,
121+ index
122+ )
123+ .call(cwd = root, stderr = os.Pipe )
124+ expect(res.err.trim().contains(javaVersion.toString))
125+ expect(res.out.trim() == expectedMessage)
126+ }
94127 }
95128 }
96129 }
0 commit comments