Skip to content

Commit f07b956

Browse files
authored
Base test resource recovery on sys env variables (#159)
Instead of assuming some paths, we refer to env variables as resources roots: * `MILL_WORKSPACE_ROOT` * `TEST_ACYCLIC_TEST_RESOURCES` Pull request: #159
1 parent 66db9d6 commit f07b956

File tree

4 files changed

+20
-7
lines changed

4 files changed

+20
-7
lines changed

acyclic/test/src-2/acyclic/TestUtils.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,13 @@ object TestUtils extends BaseTestUtils {
2424
*/
2525
def make(
2626
path: String,
27-
extraIncludes: Seq[String] = Seq("acyclic/src/acyclic/package.scala"),
27+
extraIncludes: Seq[String] =
28+
Seq(workspaceRoot + "/acyclic/src/acyclic/package.scala"),
2829
force: Boolean = false,
2930
warn: Boolean = false,
3031
collectInfo: Boolean = true
3132
): Seq[(String, String)] = {
32-
val src = "acyclic/test/resources/" + path
33+
val src = testResources + "/" + path
3334
val sources = getFilePaths(src) ++ extraIncludes
3435

3536
val vd = new VirtualDirectory("(memory)", None)
@@ -95,7 +96,7 @@ object TestUtils extends BaseTestUtils {
9596
.toSet
9697

9798
def expand(v: Value) = v match {
98-
case Value.File(filePath, pkg) => Value.File("acyclic/test/resources/" + path + "/" + filePath, Nil)
99+
case Value.File(filePath, pkg) => Value.File(testResources + "/" + path + "/" + filePath, Nil)
99100
case v => v
100101
}
101102

acyclic/test/src-3/acyclic/TestUtils.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,13 @@ object TestUtils extends BaseTestUtils {
2525
*/
2626
def make(
2727
path: String,
28-
extraIncludes: Seq[String] = Seq("acyclic/src/acyclic/package.scala"),
28+
extraIncludes: Seq[String] =
29+
Seq(workspaceRoot + "/acyclic/src/acyclic/package.scala"),
2930
force: Boolean = false,
3031
warn: Boolean = false,
3132
collectInfo: Boolean = true
3233
): Seq[(String, String)] = {
33-
val src = "acyclic/test/resources/" + path
34+
val src = testResources + "/" + path
3435
val sources = (getFilePaths(src) ++ extraIncludes).map(f => PlainFile(Path(Paths.get(f))))
3536
val vd = new VirtualDirectory("(memory)", None)
3637
val entries = getJavaClasspathEntries()
@@ -107,7 +108,7 @@ object TestUtils extends BaseTestUtils {
107108
.toSet
108109

109110
def expand(v: Value) = v match {
110-
case Value.File(filePath, pkg) => Value.File("acyclic/test/resources/" + path + "/" + filePath, Nil)
111+
case Value.File(filePath, pkg) => Value.File(testResources + "/" + path + "/" + filePath, Nil)
111112
case v => v
112113
}
113114

acyclic/test/src/acyclic/BaseTestUtils.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import scala.collection.SortedSet
88
abstract class BaseTestUtils {
99
val srcDirName: String
1010

11+
val workspaceRoot = sys.env("MILL_WORKSPACE_ROOT")
12+
val testResources = sys.env("TEST_ACYCLIC_TEST_RESOURCES")
1113
/**
1214
* Attempts to compile a resource folder as a compilation run, in order
1315
* to test whether it succeeds or fails correctly.

build.sc

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,12 @@ trait AcyclicModule extends CrossScalaModule with PublishModule {
5050
Agg(Deps.scalaCompiler(crossScalaVersion))
5151

5252
override def javacOptions = Seq(
53-
"-source", "8", "-target", "8", "-encoding", "UTF-8"
53+
"-source",
54+
"8",
55+
"-target",
56+
"8",
57+
"-encoding",
58+
"UTF-8"
5459
)
5560

5661
override def scalacOptions =
@@ -69,5 +74,9 @@ trait AcyclicModule extends CrossScalaModule with PublishModule {
6974
Deps.scalaCompiler(crossScalaVersion)
7075
)
7176
override def scalacPluginIvyDeps = Agg.empty[Dep]
77+
override def forkEnv = super.forkEnv() ++ Map(
78+
"MILL_WORKSPACE_ROOT" -> T.workspace.toString,
79+
"TEST_ACYCLIC_TEST_RESOURCES" -> (millSourcePath / "resources").toString
80+
)
7281
}
7382
}

0 commit comments

Comments
 (0)