summaryrefslogtreecommitdiff
path: root/test/files/run/global-showdef.scala
diff options
context:
space:
mode:
authorSom Snytt <som.snytt@gmail.com>2014-10-18 07:57:18 -0700
committerSom Snytt <som.snytt@gmail.com>2014-10-28 01:11:08 -0700
commitbe505f6066f9d69c8cd8bbff0439a8867d32395e (patch)
tree8fb6928c95886949327671d8911c73c340651d13 /test/files/run/global-showdef.scala
parentbdae51d6a8f18a5456a32c350cb551d42a3cb6c6 (diff)
downloadscala-be505f6066f9d69c8cd8bbff0439a8867d32395e.tar.gz
scala-be505f6066f9d69c8cd8bbff0439a8867d32395e.tar.bz2
scala-be505f6066f9d69c8cd8bbff0439a8867d32395e.zip
Make global-showdef a DirectTest
The test test/files/run/global-showdef.scala was outputting to the cwd instead of the test output dir. Good behavior is now inherited from DirectTest. Test frameworks, of any ilk or capability, rock.
Diffstat (limited to 'test/files/run/global-showdef.scala')
-rw-r--r--test/files/run/global-showdef.scala50
1 files changed, 18 insertions, 32 deletions
diff --git a/test/files/run/global-showdef.scala b/test/files/run/global-showdef.scala
index 1d4891fd1f..bbad123d01 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"
+
+ override def code = """
package foo.bar
class Bippy {
@@ -32,39 +31,26 @@ 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 foreach (x => run("-Xshow-class", x))
+ objects foreach (x => run("-Xshow-object", x))
}
- 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)
- }
}