/
TargetTest.scala
72 lines (57 loc) · 1.92 KB
/
TargetTest.scala
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
68
69
70
71
72
/*
* Scala (https://www.scala-lang.org)
*
* Copyright EPFL and Lightbend, Inc.
*
* Licensed under Apache License 2.0
* (http://www.apache.org/licenses/LICENSE-2.0).
*
* See the NOTICE file distributed with this work for
* additional information regarding copyright ownership.
*/
package scala.tools.nsc
package settings
import org.junit.{Assert, Test}, Assert.{assertEquals, assertFalse, assertTrue, fail}
import org.junit.runner.RunWith
import org.junit.runners.JUnit4
import scala.collection.mutable.ListBuffer
@RunWith(classOf[JUnit4])
class TargetTest {
@Test def testSettingTargetSetting(): Unit = {
def check(in: String, expect: String) = {
val settings = new Settings(err => fail(s"Error output: $err"))
val (ok, _) = settings.processArgumentString(in)
assertTrue(ok)
assertEquals(expect, settings.target.value)
}
def checkFail(in: String) = {
val messages = ListBuffer.empty[String]
val settings = new Settings(messages.addOne)
val (ok, _) = settings.processArgumentString(in)
assertFalse(ok)
assertTrue(messages.nonEmpty)
assertEquals(2, messages.size) // bad choice + bad option
assertTrue(messages.exists(_.startsWith("bad option")))
}
check("-target:jvm-1.8", "8")
check("-target:1.8", "8")
check("-target:jvm-8", "8")
check("-target:8", "8")
check("-target:jvm-9", "9")
check("-target:9", "9")
// it's not Java 1.9, you reprobates!
check("-target:jvm-10", "10")
check("-target:10", "10")
check("-target:jvm-11", "11")
check("-target:11", "11")
check("-target:jvm-12", "12")
check("-target:12", "12")
// (scene missing)
check("-target:jvm-16", "16")
check("-target:16", "16")
checkFail("-target:jvm-6") // no longer
checkFail("-target:jvm-17") // not yet...
checkFail("-target:jvm-3000") // not in our lifetime
checkFail("-target:msil") // really?
}
}