diff options
Diffstat (limited to 'main')
-rw-r--r-- | main/test/src/eval/FailureTests.scala | 69 | ||||
-rw-r--r-- | main/test/src/util/TestEvaluator.scala | 4 |
2 files changed, 71 insertions, 2 deletions
diff --git a/main/test/src/eval/FailureTests.scala b/main/test/src/eval/FailureTests.scala index dcfbcb60..d1b3c750 100644 --- a/main/test/src/eval/FailureTests.scala +++ b/main/test/src/eval/FailureTests.scala @@ -79,6 +79,40 @@ object FailureTests extends TestSuite{ expectedRawValues = Seq(Result.Skipped) ) } + + "evaluatePair (failFast=true)"- { + val check = new TestEvaluator(pair, failFast = true) + check.fail( + pair.down, + expectedFailCount = 0, + expectedRawValues = Seq(Result.Success(0)) + ) + + pair.up.failure = Some("lols") + + check.fail( + pair.down, + expectedFailCount = 1, + expectedRawValues = Seq(Result.Aborted) + ) + + pair.up.failure = None + + check.fail( + pair.down, + expectedFailCount = 0, + expectedRawValues = Seq(Result.Success(0)) + ) + + pair.up.exception = Some(new IndexOutOfBoundsException()) + + check.fail( + pair.down, + expectedFailCount = 1, + expectedRawValues = Seq(Result.Aborted) + ) + } + 'evaluateBacktickIdentifiers - { val check = new TestEvaluator(bactickIdentifiers) import bactickIdentifiers._ @@ -112,6 +146,41 @@ object FailureTests extends TestSuite{ expectedRawValues = Seq(Result.Skipped) ) } + + "evaluateBacktickIdentifiers (failFast=true)" - { + val check = new TestEvaluator(bactickIdentifiers, failFast = true) + import bactickIdentifiers._ + check.fail( + `a-down-target`, + expectedFailCount = 0, + expectedRawValues = Seq(Result.Success(0)) + ) + + `up-target`.failure = Some("lols") + + check.fail( + `a-down-target`, + expectedFailCount = 1, + expectedRawValues = Seq(Result.Aborted) + ) + + `up-target`.failure = None + + check.fail( + `a-down-target`, + expectedFailCount = 0, + expectedRawValues = Seq(Result.Success(0)) + ) + + `up-target`.exception = Some(new IndexOutOfBoundsException()) + + check.fail( + `a-down-target`, + expectedFailCount = 1, + expectedRawValues = Seq(Result.Aborted) + ) + } + 'multipleUsesOfDest - { object build extends TestUtil.BaseModule { // Using `T.ctx( ).dest` twice in a single task is ok diff --git a/main/test/src/util/TestEvaluator.scala b/main/test/src/util/TestEvaluator.scala index 81c8fe12..97be20be 100644 --- a/main/test/src/util/TestEvaluator.scala +++ b/main/test/src/util/TestEvaluator.scala @@ -17,7 +17,7 @@ object TestEvaluator{ } } -class TestEvaluator(module: TestUtil.BaseModule) +class TestEvaluator(module: TestUtil.BaseModule, failFast: Boolean = false) (implicit fullName: sourcecode.FullName, tp: TestPath){ val outPath = TestUtil.getOutPath() @@ -27,7 +27,7 @@ class TestEvaluator(module: TestUtil.BaseModule) colored = true, disableTicker=false, ammonite.util.Colors.Default, System.out, System.out, System.err, System.in, debugEnabled = false ) - val evaluator = new Evaluator(Ctx.defaultHome, outPath, TestEvaluator.externalOutPath, module, logger) + val evaluator = new Evaluator(Ctx.defaultHome, outPath, TestEvaluator.externalOutPath, module, logger, failFast = failFast) def apply[T](t: Task[T]): Either[Result.Failing[T], (T, Int)] = { val evaluated = evaluator.evaluate(Agg(t)) |