Merge pull request #6360 from eed3si9n/wip/in_memory

Add test for in-memory file
This commit is contained in:
eugene yokota 2021-03-07 00:30:00 -05:00 committed by GitHub
commit f155bfd1f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 41 additions and 38 deletions

View File

@ -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("/tmp/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
}
)

View File

@ -1,3 +1,5 @@
> compile
> assertEmptySourcePositionMappers
> printWarnings