summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2014-11-04 13:43:28 +1000
committerJason Zaugg <jzaugg@gmail.com>2014-11-04 13:43:28 +1000
commit617df3c1be118902d93b94ffab0d5dcb74f0bc79 (patch)
treefb13133bec977e65a6d2756d6a214829b2a79cb6 /test/files
parentb083b3902c91070c12888b2777642dd19e3536f1 (diff)
parent6233c305f88c5c4116e51371380a184eab26f653 (diff)
downloadscala-617df3c1be118902d93b94ffab0d5dcb74f0bc79.tar.gz
scala-617df3c1be118902d93b94ffab0d5dcb74f0bc79.tar.bz2
scala-617df3c1be118902d93b94ffab0d5dcb74f0bc79.zip
Merge pull request #4063 from som-snytt/issue/direct-showdef-test
Make global-showdef a DirectTest
Diffstat (limited to 'test/files')
-rw-r--r--test/files/run/global-showdef.check8
-rw-r--r--test/files/run/global-showdef.scala52
2 files changed, 24 insertions, 36 deletions
diff --git a/test/files/run/global-showdef.check b/test/files/run/global-showdef.check
index 4c2fd41a1a..4ac96b4315 100644
--- a/test/files/run/global-showdef.check
+++ b/test/files/run/global-showdef.check
@@ -1,14 +1,14 @@
<<-- class foo.bar.Bippy after phase 'typer' -->>
def showdefTestMemberClass1: Int
+<<-- object foo.bar.Bippy after phase 'typer' -->>
+ def showdefTestMemberObject2: String
<<-- type foo.bar.Bippy.BippyType after phase 'typer' -->>
def showdefTestMemberType1: Unit
+<<-- object foo.bar.Bippy.Boppity.Boo after phase 'typer' -->>
+ def showdefTestMemberObject1: String
<<-- type foo.bar.Bippy.BippyType after phase 'typer' -->>
def showdefTestMemberType2: Unit
<<-- class foo.bar.Bippy.Boppity after phase 'typer' -->>
def showdefTestMemberClass2: Int
<<-- class foo.bar.Bippy.Boppity.Boo after phase 'typer' -->>
def showdefTestMemberClass3: Int
-<<-- object foo.bar.Bippy after phase 'typer' -->>
- def showdefTestMemberObject2: String
-<<-- object foo.bar.Bippy.Boppity.Boo after phase 'typer' -->>
- def showdefTestMemberObject1: String
diff --git a/test/files/run/global-showdef.scala b/test/files/run/global-showdef.scala
index 1d4891fd1f..276fcc1e7c 100644
--- a/test/files/run/global-showdef.scala
+++ b/test/files/run/global-showdef.scala
@@ -1,11 +1,10 @@
-import scala.tools.nsc._
-import scala.reflect.io.AbstractFile
+import scala.tools.partest.DirectTest
import scala.tools.nsc.util.stringFromStream
-import scala.reflect.internal.util.{ SourceFile, BatchSourceFile }
-import scala.tools.nsc.reporters.ConsoleReporter
-object Test {
- val src: SourceFile = new BatchSourceFile("src", """
+object Test extends DirectTest {
+ override def extraSettings: String = "-usejavacp -Yshow:typer -Ystop-after:typer"
+
+ override def code = """
package foo.bar
class Bippy {
@@ -32,39 +31,28 @@ object Bippy {
def showdefTestMemberObject2 = "abc"
}
- """)
+ """
+
+ override def show(): Unit = {
+ val classes = List("Bippy", "Bippy#BippyType", "Bippy.BippyType", "Bippy#Boppity", "Bippy#Boppity#Boo")
+ val objects = List("Bippy", "Bippy#Boppity#Boo")
+
+ def interesting(line: String) = (line contains "def showdefTestMember") || (line startsWith "<<-- ")
- def mkCompiler(args: String*) = {
- val settings = new Settings()
- val command = new CompilerCommand("-usejavacp" :: args.toList, settings)
+ def run(args: String*) = slurp(args: _*).lines filter interesting foreach println
- new Global(settings)
+ classes.zipAll(objects, "", "") foreach {
+ case (c, "") => run("-Xshow-class", c)
+ case (c, o) => run("-Xshow-class", c, "-Xshow-object", o)
+ }
}
- def slurp(body: => Unit): String = stringFromStream { stream =>
+ // slurp the compilation result
+ def slurp(args: String*): String = stringFromStream { stream =>
Console.withOut(stream) {
Console.withErr(stream) {
- body
+ compile(args: _*)
}
}
}
- def lines(args: String*): List[String] = {
- val output = slurp {
- val compiler = mkCompiler(args: _*)
- val run = new compiler.Run()
- run.compileSources(List(src))
- }
- output.lines.toList
- }
- def showClass(name: String) = lines("-Yshow:typer", "-Xshow-class", name)
- def showObject(name: String) = lines("-Yshow:typer", "-Xshow-object", name)
-
- def show(xs: List[String]) = {
- xs filter (x => (x contains "def showdefTestMember") || (x startsWith "<<-- ")) foreach println
- }
-
- def main(args: Array[String]) {
- show(List("Bippy", "Bippy#BippyType", "Bippy.BippyType", "Bippy#Boppity", "Bippy#Boppity#Boo") flatMap showClass)
- show(List("Bippy", "Bippy#Boppity#Boo") flatMap showObject)
- }
}