From 04a9cac84f0bb6d5f9d573539fbb54c81d689148 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Sun, 29 Oct 2017 12:23:14 -0700 Subject: Finished migrating over to using `PathRef` to propagate changes to file paths and folders. `sideHash` remains, but is only used for direct "do I re-evaluate" checks, and relies on the return values to force downstream targets to re-evaluate if necessary --- src/test/scala/forge/EvaluationTests.scala | 2 ++ src/test/scala/forge/Framework.scala | 4 ++++ src/test/scala/forge/Main.scala | 20 ++++++++++---------- 3 files changed, 16 insertions(+), 10 deletions(-) (limited to 'src/test') diff --git a/src/test/scala/forge/EvaluationTests.scala b/src/test/scala/forge/EvaluationTests.scala index 7b47646c..2c18be2f 100644 --- a/src/test/scala/forge/EvaluationTests.scala +++ b/src/test/scala/forge/EvaluationTests.scala @@ -22,6 +22,7 @@ object EvaluationTests extends TestSuite{ def apply(target: Target[_], expValue: Any, expEvaled: OSet[Target[_]], extraEvaled: Int = 0) = { + val Evaluator.Results(returnedValues, returnedEvaluated) = evaluator.evaluate(OSet(target)) val (matchingReturnedEvaled, extra) = returnedEvaluated.items.partition(expEvaled.contains) @@ -31,6 +32,7 @@ object EvaluationTests extends TestSuite{ matchingReturnedEvaled.toSet == expEvaled.toSet, extra.length == extraEvaled ) + // Second time the value is already cached, so no evaluation needed val Evaluator.Results(returnedValues2, returnedEvaluated2) = evaluator.evaluate(OSet(target)) assert( diff --git a/src/test/scala/forge/Framework.scala b/src/test/scala/forge/Framework.scala index ccfdf69b..d1aa7434 100644 --- a/src/test/scala/forge/Framework.scala +++ b/src/test/scala/forge/Framework.scala @@ -4,4 +4,8 @@ class Framework extends utest.runner.Framework { override def exceptionStackFrameHighlighter(s: StackTraceElement) = { s.getClassName.startsWith("forge.") } + override def setup() = { + import ammonite.ops._ + rm(pwd / 'target / 'workspace) + } } diff --git a/src/test/scala/forge/Main.scala b/src/test/scala/forge/Main.scala index 99237e32..2ef6083b 100644 --- a/src/test/scala/forge/Main.scala +++ b/src/test/scala/forge/Main.scala @@ -16,38 +16,38 @@ object Main{ val res = evaluator.evaluate(OSet(jar)) println(res.evaluated.collect(mapping)) } - def compileAll(sources: Target[Seq[Path]]) = { + def compileAll(sources: Target[Seq[PathRef]]) = { new Target.Subprocess( Seq(sources), args => Seq("javac") ++ - args[Seq[Path]](0).map(_.toString) ++ + args[Seq[PathRef]](0).map(_.path.toString) ++ Seq("-d", args.dest.toString) ).map(_.dest) } - def list(root: Target[Path]): Target[Seq[Path]] = { - root.map(ls.rec) + def list(root: Target[PathRef]): Target[Seq[PathRef]] = { + root.map(x => ls.rec(x.path).map(PathRef(_))) } - case class jarUp(roots: Target[Path]*) extends Target[Path]{ + case class jarUp(roots: Target[PathRef]*) extends Target[PathRef]{ val inputs = roots - def evaluate(args: Args): Path = { + def evaluate(args: Args): PathRef = { val output = new java.util.jar.JarOutputStream(new FileOutputStream(args.dest.toIO)) for{ root0 <- args.args - root = root0.asInstanceOf[Path] + root = root0.asInstanceOf[PathRef] - path <- ls.rec(root) + path <- ls.rec(root.path) if path.isFile }{ - val relative = path.relativeTo(root) + val relative = path.relativeTo(root.path) output.putNextEntry(new JarEntry(relative.toString)) output.write(read.bytes(path)) } output.close() - args.dest + PathRef(args.dest) } -- cgit v1.2.3