Skip to content

Commit 0d80546

Browse files
committed
Support neg tests with failures in multiple files
1 parent ab4ff69 commit 0d80546

File tree

4 files changed

+14
-4
lines changed

4 files changed

+14
-4
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -759,8 +759,8 @@ trait ParallelTesting extends RunnerOrchestration { self =>
759759
failTestSource(testSource)
760760
}
761761

762-
def reporterOutputLines(reporter: TestReporter): List[String] = {
763-
reporter.allErrors.flatMap { error =>
762+
def reporterOutputLines(reporters: List[TestReporter]): List[String] = {
763+
reporters.flatMap(_.allErrors).sortBy(_.pos.source.toString).flatMap { error =>
764764
(error.pos.span.toString + " in " + error.pos.source.file.name) :: error.getMessage().lines.toList
765765
}
766766
}
@@ -779,7 +779,7 @@ trait ParallelTesting extends RunnerOrchestration { self =>
779779
if (!file.isDirectory) {
780780
val checkFile = new JFile(file.getAbsolutePath.replaceFirst("\\.scala$", ".check"))
781781
if (checkFile.exists)
782-
checkFileTest(testSource.title, checkFile, reporterOutputLines(reporter))
782+
checkFileTest(testSource.title, checkFile, reporterOutputLines(reporter :: Nil))
783783
}
784784
}
785785
if (reporter.compilerCrashed || actualErrors > 0)
@@ -800,7 +800,7 @@ trait ParallelTesting extends RunnerOrchestration { self =>
800800

801801
val checkFile = new JFile(dir.getAbsolutePath + ".check")
802802
if (checkFile.exists)
803-
checkFileTest(testSource.title, checkFile, reporters.flatMap(reporter => reporterOutputLines(reporter)))
803+
checkFileTest(testSource.title, checkFile, reporterOutputLines(reporters))
804804

805805
(compilerCrashed, expectedErrors, actualErrors, () => getMissingExpectedErrors(errorMap, errors), errorMap)
806806
}

tests/neg/multi-file-error.check

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[12..15] in A.scala
2+
Not found: foo
3+
[12..15] in B.scala
4+
Not found: bar

tests/neg/multi-file-error/A.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class A {
2+
foo() // error
3+
}

tests/neg/multi-file-error/B.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class B {
2+
bar() // error
3+
}

0 commit comments

Comments
 (0)