summaryrefslogtreecommitdiff
path: root/src/partest
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2013-01-10 11:42:03 -0800
committerPaul Phillips <paulp@improving.org>2013-01-10 11:42:03 -0800
commit5abadf0aebee68c9ba6a168355d5817f8a99d7e9 (patch)
tree0179be77625efdac221fd31ee63479473092b5eb /src/partest
parent816bcdf382ea0469f6c5eadcff44901921ba6075 (diff)
parent942f078720cb05c9238913bae8e62900558c2c45 (diff)
downloadscala-5abadf0aebee68c9ba6a168355d5817f8a99d7e9.tar.gz
scala-5abadf0aebee68c9ba6a168355d5817f8a99d7e9.tar.bz2
scala-5abadf0aebee68c9ba6a168355d5817f8a99d7e9.zip
Merge pull request #1849 from som-snytt/issue/6894-javap-app
Repl javap decodes various synthetic names for us (fixing SI-6894)
Diffstat (limited to 'src/partest')
-rw-r--r--src/partest/scala/tools/partest/JavapTest.scala26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/partest/scala/tools/partest/JavapTest.scala b/src/partest/scala/tools/partest/JavapTest.scala
new file mode 100644
index 0000000000..3cb3dc6ca8
--- /dev/null
+++ b/src/partest/scala/tools/partest/JavapTest.scala
@@ -0,0 +1,26 @@
+
+package scala.tools.partest
+
+import scala.util.{Try,Success,Failure}
+import java.lang.System.{out => sysout}
+
+/** A trait for testing repl's javap command
+ * or possibly examining its output.
+ */
+abstract class JavapTest extends ReplTest {
+
+ /** Your Assertion Here, whatever you want to bejahen.
+ * Assertions must be satisfied by all flavors of javap
+ * and should not be fragile with respect to compiler output.
+ */
+ def yah(res: Seq[String]): Boolean
+
+ def baddies = List(":javap unavailable", ":javap not yet working")
+
+ // give it a pass if javap is broken
+ override def show() = try {
+ val res = eval().toSeq
+ val unsupported = res exists (s => baddies exists (s contains _))
+ assert ((unsupported || yah(res)), res.mkString("","\n","\n"))
+ } catch { case ae: AssertionError => ae.printStackTrace(sysout) }
+}