|
The existing method of generating multiple tests from l4 files is not
flexible enough to handle multilanguage - reliance on the C
preprocessor prevents that. This commit creates replacement machinery
that's more flexible and will greatly reduce the complexity of adding
new back ends.
The idea is to generate test .l files by combining a
backend-independent ruleset with backend-dependent boilerplate for
test mains and preambles.
This commit creates the rules files, the m4 to template them into
tests, and a shell wrapper to drive the m4 expansion. The autoconf
integration works OK, but requires additional rules at the
end of tests/Makefile.am that probably ought to be autogenerated.
There was one other change forced by this. In order for the new
testmaker to work, it needs to be possible to analyze test file names
into stems and option modifiers. Having underscores in the stem
would make the analysis slower and bug-prone.
I wanted to change them to "-" rather than deleting them, but this
gives autoconf fits - it seems to not like filenames with embedded
dashes in certain contexts.
At this commit, only one test - array_nr.l - is generated using the new
system.
|