summaryrefslogtreecommitdiff
path: root/src/partest-extras
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2015-07-13 10:42:58 -0700
committerAdriaan Moors <adriaan.moors@typesafe.com>2015-07-13 10:42:58 -0700
commit216e09b3ead43039f2e34a135820ef098c3be74e (patch)
treec312a233cf3e2cf0c7ddcd679d1437a32dc819ae /src/partest-extras
parent9df8f8ae9e36cf1c04929b7b0d2bdfb6fd2f360f (diff)
parent18e3e61778918e4e802b8fb75789635409523372 (diff)
downloadscala-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.scala2
-rw-r--r--src/partest-extras/scala/tools/partest/ReplTest.scala34
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
}