1
1
package mill .integration
2
2
3
+ import coursier .Resolve
4
+ import coursier .cache .FileCache
5
+ import coursier .jvm .{JvmCache , JvmChannel , JvmIndex }
3
6
import mill .testkit .UtestIntegrationTestSuite
4
7
5
8
import utest ._
@@ -8,6 +11,30 @@ object NoJavaBootstrapTests extends UtestIntegrationTestSuite {
8
11
// Don't propagate `JAVA_HOME` to this test suite, because we want to exercise
9
12
// the code path where `JAVA_HOME` is not present during bootstrapping
10
13
override def propagateJavaHome = false
14
+
15
+ // Compute the expected JVM version from the coursier index
16
+ // In PRs bumping the index version, the JVM version might differ from the
17
+ // one of the Mill process running the tests
18
+ private lazy val expectedJavaVersion = {
19
+ val cache = FileCache ()
20
+ val index = JvmIndex .load(
21
+ cache = cache,
22
+ repositories = Resolve ().repositories,
23
+ indexChannel = JvmChannel .module(
24
+ JvmChannel .centralModule(),
25
+ version = mill.api.BuildInfo .coursierJvmIndexVersion
26
+ )
27
+ )
28
+ val jvmCache = JvmCache ().withIndex(index)
29
+
30
+ val entry = jvmCache.entries(mill.client.BuildInfo .defaultJvmId).unsafeRun()(using cache.ec)
31
+ .left.map(err => sys.error(err))
32
+ .merge
33
+ .last
34
+
35
+ entry.version
36
+ }
37
+
11
38
val tests : Tests = Tests {
12
39
test - integrationTest { tester =>
13
40
import tester ._
@@ -23,7 +50,7 @@ object NoJavaBootstrapTests extends UtestIntegrationTestSuite {
23
50
stderr = os.Inherit
24
51
)
25
52
26
- assert(res1.out == System .getProperty( " java.version " ) )
53
+ assert(res1.out == expectedJavaVersion )
27
54
28
55
// Any `JavaModule`s run from the Mill server should also inherit
29
56
// the default Mill Java version from it
@@ -33,7 +60,7 @@ object NoJavaBootstrapTests extends UtestIntegrationTestSuite {
33
60
stderr = os.Inherit
34
61
)
35
62
36
- assert(res2.out == s " Hello World! ${ System .getProperty( " java.version " )} " )
63
+ assert(res2.out == s " Hello World! $expectedJavaVersion " )
37
64
}
38
65
}
39
66
}
0 commit comments