diff options
author | Christopher Vogt <oss.nsp@cvogt.org> | 2017-02-21 12:22:31 +0800 |
---|---|---|
committer | Christopher Vogt <oss.nsp@cvogt.org> | 2017-02-27 18:53:27 +0800 |
commit | 00f1e2719d507261f40a494096487b0f0a4bae2f (patch) | |
tree | 9684b673bc9147a70eeca7783d4f455221872966 | |
parent | af5361b7eaeff292f551848d51cc1e8b0a6851c6 (diff) | |
download | cbt-00f1e2719d507261f40a494096487b0f0a4bae2f.tar.gz cbt-00f1e2719d507261f40a494096487b0f0a4bae2f.tar.bz2 cbt-00f1e2719d507261f40a494096487b0f0a4bae2f.zip |
turn `test` into a subproject for easy access to test’s tasks
-rw-r--r-- | circle.yml | 4 | ||||
-rw-r--r-- | examples/scalatest-example/build/build.scala | 11 | ||||
-rw-r--r-- | libraries/eval/build/build.scala | 6 | ||||
-rw-r--r-- | stage2/BasicBuild.scala | 26 | ||||
-rw-r--r-- | test/build/build.scala | 1 | ||||
-rw-r--r-- | test/test.scala | 2 |
6 files changed, 31 insertions, 19 deletions
@@ -13,7 +13,7 @@ dependencies: test: override: - rm ~/.gitconfig # avoid url replacement breaking jgit - - ./cbt direct test: + - ./cbt direct test.run: timeout: 1800 - - ./cbt test: + - ./cbt test.run: timeout: 1800 diff --git a/examples/scalatest-example/build/build.scala b/examples/scalatest-example/build/build.scala index 48248fd..2c0ec21 100644 --- a/examples/scalatest-example/build/build.scala +++ b/examples/scalatest-example/build/build.scala @@ -1,9 +1,14 @@ import cbt._ class Build(val context: Context) extends SbtLayoutMain { outer => - override def test: Option[ExitCode] = Some{ + /* FIXME: calling `cbt rt` for `examples/scalatest-example` leads to +java.lang.Exception: This should never happend. Could not find (org.scala-lang,scala-reflect) in +(org.scala-lang,scala-library) -> BoundMavenDependency(1488121318000,cbt/cache/maven,MavenDependency(org.scala-lang,scala-library,2.11.8,Classifier(None)),Vector(https://repo1.maven.org/maven2)) + at cbt.Stage1Lib$$anonfun$actual$1.apply(Stage1Lib.scala:425) + */ + override def test: Dependency = { new BasicBuild(context) with ScalaTest with SbtLayoutTest{ override def dependencies = outer +: super.dependencies - }.run - } + } + } } diff --git a/libraries/eval/build/build.scala b/libraries/eval/build/build.scala index a869ace..29c6d6f 100644 --- a/libraries/eval/build/build.scala +++ b/libraries/eval/build/build.scala @@ -4,11 +4,11 @@ class Build(val context: Context) extends BaseBuild{ override def dependencies = super.dependencies :+ new ScalaCompilerDependency( context.cbtLastModified, context.paths.mavenCache, scalaVersion ) - override def test: Option[ExitCode] = Some{ + override def test: Dependency = { new BasicBuild(context.copy(workingDirectory = projectDirectory ++ "/test")) with ScalaTest{ override def dependencies = super.dependencies ++ Seq( DirectoryDependency(projectDirectory++"/..") ) - }.run - } + } + } } diff --git a/stage2/BasicBuild.scala b/stage2/BasicBuild.scala index b8a6790..88f08dc 100644 --- a/stage2/BasicBuild.scala +++ b/stage2/BasicBuild.scala @@ -187,16 +187,22 @@ trait BaseBuild extends BuildInterface with DependencyImplementation with Trigge } def run: ExitCode = run( context.args: _* ) - - def test: Any = - lib.callReflective( - DirectoryDependency(projectDirectory++"/test").dependency, - Some("run"), - context - ) - - def t = test - def rt = recursiveUnsafe(Some("test")) + def test: Dependency = { + val testDirectory = projectDirectory / "test" + if( (testDirectory / lib.buildDirectoryName / lib.buildFileName).exists ){ + // FIYME: maybe we can make loadRoot(...).finalBuild an Option some + DirectoryDependency( testDirectory ).dependency + } else { + new BasicBuild( context.copy(workingDirectory = testDirectory) ){ + override def dependencies = Seq( + DirectoryDependency(projectDirectory++"/..") + ) + def apply = run + } + } + } + def t: Any = lib.callReflective( test, Some("run"), context ) + def rt = recursiveUnsafe(Some("test.run")) def recursiveSafe(_run: BuildInterface => Any): ExitCode = { val builds = (this +: transitiveDependencies).collect{ diff --git a/test/build/build.scala b/test/build/build.scala index 5a138fb..9e02144 100644 --- a/test/build/build.scala +++ b/test/build/build.scala @@ -1,4 +1,5 @@ import cbt._ class Build(val context: cbt.Context) extends BaseBuild{ override def dependencies = super.dependencies :+ context.cbtDependency + def apply = run } diff --git a/test/test.scala b/test/test.scala index cb3d6d6..818d9df 100644 --- a/test/test.scala +++ b/test/test.scala @@ -338,7 +338,7 @@ object Main{ } { - val res = runCbt("../libraries/eval", Seq("test")) + val res = runCbt("../libraries/eval", Seq("test.run")) assert(res.exit0) assert(res.out.contains("All tests passed"), res.out) } |