diff options
Diffstat (limited to 'integration/test/src/IntegrationTestSuite.scala')
-rw-r--r-- | integration/test/src/IntegrationTestSuite.scala | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/integration/test/src/IntegrationTestSuite.scala b/integration/test/src/IntegrationTestSuite.scala new file mode 100644 index 00000000..ca041eea --- /dev/null +++ b/integration/test/src/IntegrationTestSuite.scala @@ -0,0 +1,28 @@ +package mill.integration + +import mill.util.ScriptTestSuite +import utest._ + +abstract class IntegrationTestSuite(repoKey: String, val workspaceSlug: String, fork: Boolean) + extends ScriptTestSuite(fork){ + val buildFilePath = os.pwd / 'integration / 'test / 'resources / workspaceSlug + def scriptSourcePath = { + // The unzipped git repo snapshots we get from github come with a + // wrapper-folder inside the zip file, so copy the wrapper folder to the + // destination instead of the folder containing the wrapper. + + val path = sys.props(repoKey) + val Seq(wrapper) = os.list(os.Path(path)) + wrapper + } + + def buildFiles: Seq[os.Path] = os.walk(buildFilePath) + + override def initWorkspace() = { + super.initWorkspace() + buildFiles.foreach { file => + os.copy.over(file, workspacePath / file.last) + } + assert(!os.walk(workspacePath).exists(_.ext == "class")) + } +} |