Skip to content

Commit 7e33bc4

Browse files
committed
Fix #2242: let user know which file got logged to
1 parent c9e1bc5 commit 7e33bc4

File tree

2 files changed

+29
-10
lines changed

2 files changed

+29
-10
lines changed

compiler/test/dotty/tools/dotc/reporting/TestReporter.scala

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,23 +91,41 @@ extends Reporter with UniqueMessagePositions with HideNonSensicalMessages with M
9191
}
9292

9393
object TestReporter {
94-
val logWriter = {
94+
private[this] var outFile: JFile = _
95+
private[this] var logWriter: PrintWriter = _
96+
97+
private[this] def initLog() = if (logWriter eq null) {
9598
val df = new SimpleDateFormat("yyyy-MM-dd-HH:mm")
9699
val timestamp = df.format(new Date)
97100
new JFile("../testlogs").mkdirs()
98-
new PrintWriter(new FileOutputStream(new JFile(s"../testlogs/tests-$timestamp.log"), true))
101+
outFile = new JFile(s"../testlogs/tests-$timestamp.log")
102+
logWriter = new PrintWriter(new FileOutputStream(outFile, true))
99103
}
100104

101-
def writeToLog(str: String) = {
105+
def logPrintln(str: String) = {
106+
initLog()
102107
logWriter.println(str)
103108
logWriter.flush()
104109
}
105110

111+
def logPrint(str: String): Unit = {
112+
initLog()
113+
logWriter.println(str)
114+
}
115+
116+
def logFlush(): Unit =
117+
if (logWriter ne null) logWriter.flush()
118+
119+
def logPath: String = {
120+
initLog()
121+
outFile.getCanonicalPath
122+
}
123+
106124
def reporter(ps: PrintStream, logLevel: Int): TestReporter =
107-
new TestReporter(new PrintWriter(ps, true), writeToLog, logLevel)
125+
new TestReporter(new PrintWriter(ps, true), logPrintln, logLevel)
108126

109127
def simplifiedReporter(writer: PrintWriter): TestReporter = {
110-
val rep = new TestReporter(writer, writeToLog, WARNING) {
128+
val rep = new TestReporter(writer, logPrintln, WARNING) {
111129
/** Prints the message with the given position indication in a simplified manner */
112130
override def printMessageAndPos(m: MessageContainer, extra: String)(implicit ctx: Context): Unit = {
113131
def report() = {

compiler/test/dotty/tools/vulpix/SummaryReport.scala

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,11 @@ final class SummaryReport extends SummaryReporting {
102102
if (isInteractive) {
103103
println(rep.toString)
104104
if (failed > 0) println {
105-
"""|
106-
|----------------------------------------------------------
107-
|Note: reproduction instructed have been dumped to log file
108-
|----------------------------------------------------------""".stripMargin
105+
s"""|
106+
|--------------------------------------------------------------------------------
107+
|Note - reproduction instructions have been dumped to log file:
108+
| ${TestReporter.logPath}
109+
|--------------------------------------------------------------------------------""".stripMargin
109110
}
110111
}
111112

@@ -116,7 +117,7 @@ final class SummaryReport extends SummaryReporting {
116117
// If we're on the CI, we want everything
117118
if (!isInteractive) println(rep.toString)
118119

119-
TestReporter.writeToLog(rep.toString)
120+
TestReporter.logPrintln(rep.toString)
120121

121122
// Perform cleanup callback:
122123
if (cleanUps.nonEmpty) cleanUps.foreach(_.apply())

0 commit comments

Comments
 (0)