diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2015-07-13 10:42:58 -0700 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2015-07-13 10:42:58 -0700 |
commit | 216e09b3ead43039f2e34a135820ef098c3be74e (patch) | |
tree | c312a233cf3e2cf0c7ddcd679d1437a32dc819ae /src/partest-extras | |
parent | 9df8f8ae9e36cf1c04929b7b0d2bdfb6fd2f360f (diff) | |
parent | 18e3e61778918e4e802b8fb75789635409523372 (diff) | |
download | scala-216e09b3ead43039f2e34a135820ef098c3be74e.tar.gz scala-216e09b3ead43039f2e34a135820ef098c3be74e.tar.bz2 scala-216e09b3ead43039f2e34a135820ef098c3be74e.zip |
Merge pull request #4622 from retronym/merge/2.11.x-to-2.12.x-20150713
Merge 2.11.x to 2.12.x [ci: last-only]
Diffstat (limited to 'src/partest-extras')
-rw-r--r-- | src/partest-extras/scala/tools/partest/ASMConverters.scala | 2 | ||||
-rw-r--r-- | src/partest-extras/scala/tools/partest/ReplTest.scala | 34 |
2 files changed, 20 insertions, 16 deletions
diff --git a/src/partest-extras/scala/tools/partest/ASMConverters.scala b/src/partest-extras/scala/tools/partest/ASMConverters.scala index e8d327d352..b4c686473b 100644 --- a/src/partest-extras/scala/tools/partest/ASMConverters.scala +++ b/src/partest-extras/scala/tools/partest/ASMConverters.scala @@ -142,7 +142,7 @@ object ASMConverters { import collection.mutable.{Map => MMap} /** - * Bytecode is equal modula local variable numbering and label numbering. + * Bytecode is equal modulo local variable numbering and label numbering. */ def equivalentBytecode(as: List[Instruction], bs: List[Instruction], varMap: MMap[Int, Int] = MMap(), labelMap: MMap[Int, Int] = MMap()): Boolean = { def same(v1: Int, v2: Int, m: MMap[Int, Int]) = { diff --git a/src/partest-extras/scala/tools/partest/ReplTest.scala b/src/partest-extras/scala/tools/partest/ReplTest.scala index 1fde2370d3..20dfe0eb16 100644 --- a/src/partest-extras/scala/tools/partest/ReplTest.scala +++ b/src/partest-extras/scala/tools/partest/ReplTest.scala @@ -6,8 +6,9 @@ package scala.tools.partest import scala.tools.nsc.Settings -import scala.tools.nsc.interpreter.ILoop +import scala.tools.nsc.interpreter.{ ILoop, replProps } import java.lang.reflect.{ Method => JMethod, Field => JField } +import scala.util.matching.Regex import scala.util.matching.Regex.Match /** A class for testing repl code. @@ -19,30 +20,33 @@ abstract class ReplTest extends DirectTest { // final because we need to enforce the existence of a couple settings. final override def settings: Settings = { val s = super.settings - // s.Yreplsync.value = true s.Xnojline.value = true transformSettings(s) } + def normalize(s: String) = s /** True for SessionTest to preserve session text. */ def inSession: Boolean = false - /** True to preserve welcome text. */ + /** True to preserve welcome header, eliding version number. */ def welcoming: Boolean = false - lazy val welcome = "(Welcome to Scala) version .*".r - def normalize(s: String) = s match { - case welcome(w) => w - case s => s - } - def unwelcoming(s: String) = s match { - case welcome(w) => false - case _ => true - } + lazy val header = replProps.welcome def eval() = { val s = settings log("eval(): settings = " + s) - //ILoop.runForTranscript(code, s).lines drop 1 // not always first line val lines = ILoop.runForTranscript(code, s, inSession = inSession).lines - if (welcoming) lines map normalize - else lines filter unwelcoming + (if (welcoming) { + val welcome = "(Welcome to Scala).*".r + //val welcome = Regex.quote(header.lines.next).r + //val version = "(.*version).*".r // version on separate line? + //var inHead = false + lines map { + //case s @ welcome() => inHead = true ; s + //case version(s) if inHead => inHead = false ; s + case welcome(s) => s + case s => s + } + } else { + lines drop header.lines.size + }) map normalize } def show() = eval() foreach println } |