Skip to content

Commit

Permalink
Fix coverage tests on windows (#16245)
Browse files Browse the repository at this point in the history
[test_windows_full
failed](https://github.com/lampepfl/dotty/actions/runs/3313981586/jobs/5472673283)

Coverage tests replaced all `\` by `/`, but the paths are now escaped,
which turns `C:\folder\file` into `C:\\folder\\file`. Thus we need to
replace `\\` by `/`!

Note: this fix is better than removing `.escaped` from paths, because
paths are allowed to contains problematic characters such as newlines,
which would break the coverage report.
  • Loading branch information
TheElectronWill authored Oct 24, 2022
2 parents 7f21e0a + 432174b commit 45ac398
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions compiler/test/dotty/tools/dotc/coverage/CoverageTests.scala
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,12 @@ class CoverageTests:
checkCoverageIn(rootSrc.resolve("run"), true)

def checkCoverageIn(dir: Path, run: Boolean)(using TestGroup): Unit =
/** Converts \ to / on windows, to make the tests pass without changing the serialization. */
/** Converts \\ (escaped \) to / on windows, to make the tests pass without changing the serialization. */
def fixWindowsPaths(lines: Buffer[String]): Buffer[String] =
val separator = java.io.File.separatorChar
if separator != '/' then
lines.map(_.replace(separator, '/'))
if separator == '\\' then
val escapedSep = "\\\\"
lines.map(_.replace(escapedSep, "/"))
else
lines
end fixWindowsPaths
Expand Down

0 comments on commit 45ac398

Please sign in to comment.