diff --git a/sbt-app/src/sbt-test/source-dependencies/move-file/A.scala b/sbt-app/src/sbt-test/source-dependencies/move-file/A.scala new file mode 100644 index 000000000..83b986f33 --- /dev/null +++ b/sbt-app/src/sbt-test/source-dependencies/move-file/A.scala @@ -0,0 +1,5 @@ +package example + +object Main { + def main(args: Array[String]): Unit = () +} diff --git a/sbt-app/src/sbt-test/source-dependencies/move-file/build.sbt b/sbt-app/src/sbt-test/source-dependencies/move-file/build.sbt new file mode 100644 index 000000000..f62cfa56f --- /dev/null +++ b/sbt-app/src/sbt-test/source-dependencies/move-file/build.sbt @@ -0,0 +1,15 @@ +import sbt.internal.inc.Analysis +import complete.DefaultParsers.* + +scalaVersion := "2.13.18" + +val checkStampSize = inputKey[Unit]("Verifies the accumulated number of iterations of incremental compilation.") +checkStampSize := { + val expected: Int = (Space ~> NatBasic).parsed + val analysis = (Compile / compile).value match + case a: Analysis => a + println(s"analysis: $analysis") + val sourceStampSize = analysis.readStamps.getAllSourceStamps.size + assert(sourceStampSize == expected, s"sourceStampSize = $sourceStampSize") +} + diff --git a/sbt-app/src/sbt-test/source-dependencies/move-file/pending b/sbt-app/src/sbt-test/source-dependencies/move-file/pending new file mode 100644 index 000000000..358ab6596 --- /dev/null +++ b/sbt-app/src/sbt-test/source-dependencies/move-file/pending @@ -0,0 +1,17 @@ +> checkStampSize 1 + +# move A.scala elsewhere +$ copy-file A.scala A.txt +$ delete A.scala +> checkStampSize 0 + +# move A.scala back +$ copy-file A.txt A.scala +$ delete A.txt +$ exists A.scala + +> show Compile/sources + +# if we recompile, we should regain stamp size 1 +> debug +> checkStampSize 1