aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--circle.yml4
-rw-r--r--examples/scalatest-example/build/build.scala11
-rw-r--r--libraries/eval/build/build.scala6
-rw-r--r--stage2/BasicBuild.scala26
-rw-r--r--test/build/build.scala1
-rw-r--r--test/test.scala2
6 files changed, 31 insertions, 19 deletions
diff --git a/circle.yml b/circle.yml
index a25dc35..d3f66e8 100644
--- a/circle.yml
+++ b/circle.yml
@@ -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)
}