I had hoped this would be considerably easier to implement, but there are some confounding factors. First of all: this accomplishes the initial task of getting nested template applications and definitions re-output in the `xmli` file. But to do so successfully, some assumptions had to be made. The primary issue is that of scope. The old (XSLT-based) TAME relied on the output JS to handle lexical scope for it at runtime in most situations. In the case of the template system, when scoping/shadowing were needed, complex and buggy XPaths were used to make a best effort. The equivalent here would be a graph traversal, which is not ideal. I had begun going down the rabbit hole of formalizing lexical scope for TAMER with environments, but I want to get this committed and working first; I've been holding onto this and breaking off changes for some time now. DEV-13708 |
||
---|---|---|
.. | ||
xmli | ||
README.md | ||
run-tests |
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
.