summaryrefslogtreecommitdiff
path: root/src/test
Commit message (Collapse)AuthorAgeFilesLines
* Got Zinc working on the test bench, compiling forge's own projectLi Haoyi2017-10-292-16/+100
|
* First builds work going through an Ammonite script, currently run using `sbt ↵Li Haoyi2017-10-291-0/+66
| | | | "~run src/test/examples/javac/build.sc`
* Add some final output checks to javac integration testLi Haoyi2017-10-292-4/+18
|
* diagram out javac flow chartLi Haoyi2017-10-291-0/+5
|
* First set of `javac` integration tests all pass now, using folder-hashing ↵Li Haoyi2017-10-291-37/+46
| | | | instead of mtimes because mtimes are flaky and unprecise (1 *second* resolution on OS-X!)
* First pass at making `javac` example an automated test. Still doesn't pass...Li Haoyi2017-10-295-43/+111
|
* Move `Args` into the `util/` packageLi Haoyi2017-10-291-1/+1
|
* Split up `Utils.scala` and move the pieces into the `utils/` packageLi Haoyi2017-10-294-0/+5
|
* Finished migrating over to using `PathRef` to propagate changes to file ↵Li Haoyi2017-10-293-10/+16
| | | | | | 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
* WIPLi Haoyi2017-10-292-21/+17
| | | | | - Making `groupAroundNamedTargets` return a `MutableBiMap` - Make `evaluateGroupCached` also take note of the `sideHash`es of upstream targets, to handle cases like `Path`s where the path you're returning doesn't change but we still want to invalidate it anyway
* Add `bigSingleTerminal` to the `EvaluationTests`Li Haoyi2017-10-291-4/+25
|
* Swap over wholesale to ammonite.opsLi Haoyi2017-10-292-19/+18
|
* Swap over in-memory results cache to disk-based JSON metadataLi Haoyi2017-10-291-4/+6
|
* split out TestGraph from TestUtilLi Haoyi2017-10-284-60/+75
|
* Get rid of `DefCtx` for good. All tests passing entirely using the new ↵Li Haoyi2017-10-284-129/+71
| | | | `Discovered` labeling mechanism
* Implemented member-reflection-based naming, set to replace the old ↵Li Haoyi2017-10-283-34/+83
| | | | `DefCtx`/`sourcecode.Enclosing` strategy
* Move java-compile example supporting code into test suiteLi Haoyi2017-10-282-10/+59
|
* Got grouped evaluation workingLi Haoyi2017-10-273-21/+15
|
* Migrate everything which shouldn't have duplicates over to a new `OSet` data ↵Li Haoyi2017-10-273-64/+64
| | | | structure
* - Split out `ForgeTests` into `EvaluatioNTests` and `GraphTests`Li Haoyi2017-10-264-309/+403
| | | | | | - Added a non-trivial test graph to our test suite EvaluationTests have broken, need to fix
* Fleshed out basic `groupAroundNamedTargets` logicLi Haoyi2017-10-261-3/+36
|
* Serialization using play-json now mostly in placeLi Haoyi2017-10-261-7/+21
| | | | "pure" targets which depend only on their inputs are modeled but their evaluation semantics aren't fleshed out
* Flesh out `evaluate` tests for `diamond` and `anonDiamond` casesLi Haoyi2017-10-251-26/+63
|
* Macro-based anonymous `Target` naming now works: we use the `T{...}` macro ↵Li Haoyi2017-10-241-25/+118
| | | | look at any `Target`s defined lexically within the call, and as long as they can only be evaluated once (relative to the `T{...}`) we assign them labels with an incrementing integer suffixed onto the enclosing `T{...}`s label
* Add some basic `compileError` tests to make sure mis-using `T{}` doesn't compileLi Haoyi2017-10-221-0/+5
|
* Swap over to new macro-based `DefCtx` injection, rather than relying on ↵Li Haoyi2017-10-222-94/+59
| | | | | | | | `StaticContext` This should let us avoid the same `StaticContext` being re-used by multiple implicit use-sites within a block, causing confusion. `ForgeTests.evaluate.anonTriple` still doesn't pass for unrelated reasons
* Move to caching based on label instead of Target objectLi Haoyi2017-10-221-5/+37
| | | | `anonTriple` test currently fails, because both `AnonTriple.down` and `AnonTriple.down.inputs(0)` end up picking up the same label...
* - Basic dirty-checking of targets works; targets can now request to be ↵Li Haoyi2017-10-221-0/+28
| | | | | | | | | | recomputed independent of their inputs - Split out `Target` and `TargetOps`, so `Target` can be a pristine description of what a subclass needs to implement - Convert targets from `case class`es into normal `class`s, since none of the case class functionality is useful - Disable parallel execution in tests, since we don't really need it right now and it jumbles up incremental test reporting
* Extract `topoSortedTransitiveTargets` into `Evaluator` companion objectLi Haoyi2017-10-221-1/+1
|
* - `Target.Noop -> Target.Test`Li Haoyi2017-10-221-24/+29
| | | | | - `Target.Test`'s output now depends on its upstream targets, and is now configurable, so you can use it to test change propagations - Move `ForgeTests`'s targets inside the `Tests` block, since they're now mutable and so shouldn't remain global
* Add simple unit tests for `topoSortedTransitiveTargets`Li Haoyi2017-10-221-11/+22
|
* Fix `Evaluator#prepareTransitiveTargets`Li Haoyi2017-10-221-9/+9
|
* update to utest 0.6.0, enable stacktrace highlightingLi Haoyi2017-10-222-9/+17
|
* Things compile again...Li Haoyi2017-10-221-1/+5
|
* rename hbt -> forgeLi Haoyi2017-10-225-20/+48
|
* - Nest `StaticContext` into `DefCtx`Li Haoyi2017-10-211-1/+1
| | | | - Implement `Target.noop`, to let us construct target graphs without needing to create dummy implementations
* Add `StaticContext` macro to let us distinguish top-level targets from ↵Li Haoyi2017-10-211-0/+36
| | | | dynamically generated targets
* - Convert example workflow to `javac` since `scalac` is slowLi Haoyi2017-10-195-0/+36
| | | | | - Implement `Target.Subprocess`, and use it inside `compileAll` - Move `Main` workflow into `HbtTests`, to be run using uTest
* Include Tarjan's algorithm, for doing a topological sort which elegantly ↵Li Haoyi2017-10-171-0/+89
handles cycles