tame/tamer/tests
Mike Gerwitz 5a301c1548 tamer: asg::graph::visit::ontree: Source ordering of ontological tree
This introduces the ability to specify an edge ordering for the ontological
tree traversal.  `tree_reconstruction` will now use a
`SourceCompatibleTreeEdgeOrder`, which will traverse the graph in an order
that will result in a properly ordered source reconstruction.  This is
needed for template headers, because interpolation causes
metavariables (exposed as template params) to be mixed into the body.

There's a lot of information here, including some TODOs on possible
improvements.  I used the unstable `is_sorted` to output how many template
were already sorted, based on one of our very large packages internally that
uses templates extensively, and found that none of the desugared shorthand
template expansions were already ordered.  If I tweak that a bit, then
nearly all templates will already be ordered, reducing the work that needs
to be done, leaving only template definitions with interpolation to be
concerned about, which is infrequent relative to everything else.

DEV-13163
2023-07-18 10:31:31 -04:00
..
xmli tamer: asg::graph::visit::ontree: Source ordering of ontological tree 2023-07-18 10:31:31 -04:00
README.md tamer: tests: System test support 2023-03-10 14:27:58 -05:00
run-tests tamer: tests: System test support 2023-03-10 14:27:58 -05:00

README.md

System and Integration Tests

Rust files in this directory will be recognized by Cargo and will be automatically compiled and run by make check.

Shell scripts prefixed with test- will be recognized by our test harness and run on make check. These scripts should be preferred when confidence in the system end-to-end is required, since they invoke the binaries just the same as the user or build process would.

Unit and integration tests written in Rust are located alongside the modules they test in ../src/. Benchmarks are in ../benches.