aboutsummaryrefslogtreecommitdiff
path: root/tests/pending/run/settings-parse.scala
blob: 2754feb972087f081a0d32a2f4b4882be968044b (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
import scala.language.postfixOps
import scala.tools.nsc._

object Test {
  val tokens        = List("", "-deprecation", "foo.scala")
  val subsets       = tokens.toSet.subsets.toList
  val permutations0 = subsets.flatMap(_.toList.permutations).distinct

  def runWithCp(cp: String) = {
    val permutations = permutations0 flatMap ("-cp CPTOKEN" :: _ permutations)

    for ((p, i) <- permutations.distinct.sortBy(_ mkString "").zipWithIndex) {
      val args           = p flatMap (_ split "\\s+") map (x => if (x == "CPTOKEN") cp else x)
      val s              = new settings.MutableSettings(println)
      val (ok, residual) = s.processArguments(args, processAll = true)

      val expected = args filter (_ == "foo.scala")
      assert(residual == expected, residual)
      assert(ok, args)
      println(s"$i) $args ==> $s")
    }
  }

  def main(args0: Array[String]): Unit = {
    runWithCp("")
    runWithCp("/tmp:/bippy")
  }
}