From 8a2083cb031f111f102b35954a294dbb63ecfa69 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sat, 6 Mar 2021 14:29:20 -0500 Subject: [PATCH] Add test for in-memory file --- .../sbt-test/reporter/source-mapper/build.sbt | 77 ++++++++++--------- sbt/src/sbt-test/reporter/source-mapper/test | 2 + 2 files changed, 41 insertions(+), 38 deletions(-) diff --git a/sbt/src/sbt-test/reporter/source-mapper/build.sbt b/sbt/src/sbt-test/reporter/source-mapper/build.sbt index a6be7bed5..bfd87979b 100644 --- a/sbt/src/sbt-test/reporter/source-mapper/build.sbt +++ b/sbt/src/sbt-test/reporter/source-mapper/build.sbt @@ -1,41 +1,42 @@ import sbt.internal.util.ConsoleAppender +import sbt.internal.inc.StringVirtualFile +import xsbti.compile.CompileOptions -extraAppenders := { s => Seq(ConsoleAppender(FakePrintWriter)) } +lazy val assertEmptySourcePositionMappers = taskKey[Unit]("checks that sourcePositionMappers is empty") +lazy val assertAbsolutePathConversion = taskKey[Unit]("checks source mappers convert to absolute path") +lazy val assertVirtualFile = taskKey[Unit]("checks source mappers handle virtual files") +lazy val resetMessages = taskKey[Unit]("empties the messages list") -val assertEmptySourcePositionMappers = taskKey[Unit]("checks that sourcePositionMappers is empty") - -val assertAbsolutePathConversion = taskKey[Unit]("checks source mappers convert to absolute path") - -val assertVirtualFile = taskKey[Unit]("checks source mappers handle virtual files") - -val resetMessages = taskKey[Unit]("empties the messages list") - -assertEmptySourcePositionMappers := { - assert { - sourcePositionMappers.value.isEmpty - } -} - -assertAbsolutePathConversion := { - val source = (Compile/sources).value.head - assert { - FakePrintWriter.messages.exists(_.contains(s"${source.getAbsolutePath}:3:15: comparing values of types Int and String using `==` will always yield false")) - } - assert { - FakePrintWriter.messages.forall(!_.contains("${BASE}")) - } -} - -assertVirtualFile := { - val source = (Compile/sources).value.head - assert { - FakePrintWriter.messages.exists(_.contains("${BASE}/src/main/scala/Foo.scala:3:15: comparing values of types Int and String using `==` will always yield false")) - } - assert { - FakePrintWriter.messages.forall(!_.contains(source.getAbsolutePath)) - } -} - -resetMessages := { - FakePrintWriter.resetMessages -} +lazy val root = (project in file(".")) + .settings( + extraAppenders := { s => Seq(ConsoleAppender(FakePrintWriter)) }, + Compile / compile / compileOptions ~= { old: CompileOptions => + old.withSources(StringVirtualFile("<>::A.scala", + """object X""") +: old.sources) }, + assertEmptySourcePositionMappers := { + assert { + sourcePositionMappers.value.isEmpty + } + }, + assertAbsolutePathConversion := { + val source = (Compile/sources).value.head + assert { + FakePrintWriter.messages.exists(_.contains(s"${source.getAbsolutePath}:3:15: comparing values of types Int and String using `==` will always yield false")) + } + assert { + FakePrintWriter.messages.forall(!_.contains("${BASE}")) + } + }, + assertVirtualFile := { + val source = (Compile/sources).value.head + assert { + FakePrintWriter.messages.exists(_.contains("${BASE}/src/main/scala/Foo.scala:3:15: comparing values of types Int and String using `==` will always yield false")) + } + assert { + FakePrintWriter.messages.forall(!_.contains(source.getAbsolutePath)) + } + }, + resetMessages := { + FakePrintWriter.resetMessages + } + ) diff --git a/sbt/src/sbt-test/reporter/source-mapper/test b/sbt/src/sbt-test/reporter/source-mapper/test index a0f3e7889..ad0ede616 100644 --- a/sbt/src/sbt-test/reporter/source-mapper/test +++ b/sbt/src/sbt-test/reporter/source-mapper/test @@ -1,3 +1,5 @@ +> compile + > assertEmptySourcePositionMappers > printWarnings