...mostly routine after solving the tricky design challenge
- for usage, instantiate the template DataFile with a Storage record
- object is created with filename, and immediately slurps in existing data
- data storage is optimised for readability (not speed); newest value at top
Note: some kind of testcase is "hidden" in this changeset only;
next changeset will remove research-experiment.hpp
rationale: the purpose is to read back our own values,
yet it should be reasonably standard, to allow investigating
and tweaking values with a spreadsheet
- first line is a header line and used to verify the number of columns
- one record per line, embedded line breaks prohibited
- fields separated by comma, semicolon tolerated
- fields are trimmed and may be empty
- a field may be double quoted
- only quoted fields may contain whitespace or comma
- no escaping of quotes, i.e. no quotes within quotes
- build the parametrisation from several config sources
- read and interpret the test specifications in a subdirectory structure
- as a result build a complete test suite definition as a sequence of test steps
- setup a stage, also based on the parametrisation
- actually perform the test suite and capture results
- generate a test report