blob: 37c64b057b8c053b8c739b14fdc8a98aca8ecd0e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
package mill.main
import mill.util.ScriptTestSuite
import utest._
object JavaCompileJarTests extends ScriptTestSuite(fork = false) {
def workspaceSlug = "java-compile-jar"
def scriptSourcePath = os.pwd / 'main / 'test / 'resources / 'examples / 'javac
val tests = Tests{
initWorkspace()
'test - {
if (!ammonite.util.Util.java9OrAbove) {
// Basic target evaluation works
assert(eval("classFiles"))
assert(eval("jar"))
val classFiles1 = meta("classFiles")
val jar1 = meta("jar")
assert(eval("classFiles"))
assert(eval("jar"))
// Repeated evaluation has the same results
val classFiles2 = meta("classFiles")
val jar2 = meta("jar")
assert(
jar1 == jar2,
classFiles1 == classFiles2
)
// If we update resources, classFiles are unchanged but jar changes
for(scalaFile <- os.walk(workspacePath).filter(_.ext == "txt")){
os.write.append(scalaFile, "\n")
}
assert(eval("classFiles"))
assert(eval("jar"))
val classFiles3 = meta("classFiles")
val jar3 = meta("jar")
assert(
jar2 != jar3,
classFiles2 == classFiles3
)
// We can intentionally break the code, have the targets break, then
// fix the code and have them recover.
for(scalaFile <- os.walk(workspacePath).filter(_.ext == "java")){
os.write.append(scalaFile, "\n}")
}
assert(!eval("classFiles"))
assert(!eval("jar"))
for(scalaFile <- os.walk(workspacePath).filter(_.ext == "java")){
os.write.over(scalaFile, os.read(scalaFile).dropRight(2))
}
assert(eval("classFiles"))
assert(eval("jar"))
}
}
}
}
|