TDML test suite runner
Base class for all document parts that contain data directly expressed in the XML
Base class for all document parts
Needs to be thread-safe (i.e., use all thread-local state) so that test can be run in parallel.
Needs to be thread-safe (i.e., use all thread-local state) so that test can be run in parallel.
Note however, that each thread will get its own copy of the DFDLTestSuite
A cache of things associated with URISchemaSources.
A cache of things associated with URISchemaSources.
Recompiles if URI is a file and the modification date has changed.
Thread safe so that multiple threads can share a compiled schema for the same URI. One thread will wait while the other compiles it.
Creates the DFDLTestSuite object lazily, so the file isn't read into memory and parsed unless you actually try to run a test using it.
Creates the DFDLTestSuite object lazily, so the file isn't read into memory and parsed unless you actually try to run a test using it.
Creates the DFDLTestSuite only once.
Provides a reset method to be called from @AfterClass to drop the test suite object (and avoid memory leak).
Note: I have verified that this does get called after each test suite has been run.
defaultRoundTripDefault if true the round trip default for the test suite will be this value, if the test suite does not specify defaultRoundTrip attribute.
defaultRoundTripDefaultDefault
Cache that saves the compiled data processor objects (memory structures, not files of the serialized representation)
TDML test suite runner
Keep this independent of Daffodil, so that it can be used to run tests against other DFDL implementations as well. E.g., it should only need an API specified as a collection of Scala traits, and some simple way to inject dependency on one factory to create processors.
Use the validateTDMLFile arg to bypass validation of the TDML document itself.
This is used for testing whether one can detect validation errors in the DFDL schema.
Without this, you can't get to the validation errors, because it rejects the TDML file itself.
defaultRoundTripDefault if true the round trip default for the test suite will be taken from this value if it is not specified on the testSuite itself.