aboutsummaryrefslogtreecommitdiff
path: root/compiler/test/dotty/tools/dotc/reporting/TestReporter.scala
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/test/dotty/tools/dotc/reporting/TestReporter.scala')
-rw-r--r--compiler/test/dotty/tools/dotc/reporting/TestReporter.scala66
1 files changed, 30 insertions, 36 deletions
diff --git a/compiler/test/dotty/tools/dotc/reporting/TestReporter.scala b/compiler/test/dotty/tools/dotc/reporting/TestReporter.scala
index 521cf9576..5641240a7 100644
--- a/compiler/test/dotty/tools/dotc/reporting/TestReporter.scala
+++ b/compiler/test/dotty/tools/dotc/reporting/TestReporter.scala
@@ -2,7 +2,7 @@ package dotty.tools
package dotc
package reporting
-import java.io.{ PrintWriter, File => JFile, FileOutputStream }
+import java.io.{ PrintStream, PrintWriter, File => JFile, FileOutputStream }
import java.text.SimpleDateFormat
import java.util.Date
@@ -25,10 +25,16 @@ extends Reporter with UniqueMessagePositions with HideNonSensicalMessages with M
protected final val _messageBuf = mutable.ArrayBuffer.empty[String]
final def flushToFile(): Unit =
- _messageBuf.iterator.foreach(filePrintln)
+ _messageBuf
+ .iterator
+ .map(_.replaceAll("\u001b\\[.*?m", ""))
+ .foreach(filePrintln)
final def flushToStdErr(): Unit =
- _messageBuf.iterator.foreach(System.err.println)
+ _messageBuf
+ .iterator
+ .map(_.replaceAll("\u001b\\[.*?m", ""))
+ .foreach(System.err.println)
final def inlineInfo(pos: SourcePosition): String =
if (pos.exists) {
@@ -75,10 +81,11 @@ extends Reporter with UniqueMessagePositions with HideNonSensicalMessages with M
}
object TestReporter {
- private[this] val logWriter = {
+ private[this] lazy val logWriter = {
val df = new SimpleDateFormat("yyyy-MM-dd-HH:mm")
val timestamp = df.format(new Date)
- new PrintWriter(new FileOutputStream(new JFile(s"../tests-$timestamp.log"), true))
+ new JFile("../testlogs").mkdirs()
+ new PrintWriter(new FileOutputStream(new JFile(s"../testlogs/tests-$timestamp.log"), true))
}
def writeToLog(str: String) = {
@@ -86,38 +93,25 @@ object TestReporter {
logWriter.flush()
}
- def parallelReporter(lock: AnyRef, logLevel: Int): TestReporter = new TestReporter(
- new PrintWriter(Console.err, true),
- str => lock.synchronized {
- logWriter.println(str)
- logWriter.flush()
- },
- logLevel
- )
-
- def reporter(logLevel: Int): TestReporter = new TestReporter(
- new PrintWriter(Console.err, true),
- writeToLog,
- logLevel
- )
-
- def simplifiedReporter(writer: PrintWriter): TestReporter = new TestReporter(
- writer,
- writeToLog,
- WARNING
- ) {
- /** Prints the message with the given position indication in a simplified manner */
- override def printMessageAndPos(m: MessageContainer, extra: String)(implicit ctx: Context): Unit = {
- val msg = s"${m.pos.line + 1}: " + m.contained.kind + extra
- val extraInfo = inlineInfo(m.pos)
-
- writer.println(msg)
- _messageBuf.append(msg)
-
- if (extraInfo.nonEmpty) {
- writer.println(extraInfo)
- _messageBuf.append(extraInfo)
+ def reporter(ps: PrintStream, logLevel: Int): TestReporter =
+ new TestReporter(new PrintWriter(ps, true), writeToLog, logLevel)
+
+ def simplifiedReporter(writer: PrintWriter): TestReporter = {
+ val rep = new TestReporter(writer, writeToLog, WARNING) {
+ /** Prints the message with the given position indication in a simplified manner */
+ override def printMessageAndPos(m: MessageContainer, extra: String)(implicit ctx: Context): Unit = {
+ val msg = s"${m.pos.line + 1}: " + m.contained.kind + extra
+ val extraInfo = inlineInfo(m.pos)
+
+ writer.println(msg)
+ _messageBuf.append(msg)
+
+ if (extraInfo.nonEmpty) {
+ writer.println(extraInfo)
+ _messageBuf.append(extraInfo)
+ }
}
}
+ rep
}
}