This completes the transition started in Knight scripts during their M2libc
migration at f2094a9e5b
from : to
--BaseAddress : --base-address
--BigEndian : --big-endian
--LittleEndian : --little-endian
The plan for mescc-tools is to deprecate the old (pre-1.0.0) flags.
Note that test0101 compiles "hex2 0.3" and verifies that it works by
linking an example. This 0.3 version requires the old-style flags, so the
calls to test/results/test0101-*-binary are left unchanged.
hex2 in mescc-tools defaults to executable output file since 1.0.0.
See 0a553f720d39dae4231611671e4163a2d2422e0a there.
This completes the removal started in Knight scripts during their M2libc
migration at f2094a9e5b
Note that test0101 compiles "hex2 0.3" and verifies that it works by
linking an example. Calls to test/results/test0101-*-binary never used the
flag because we don't call the linked example (we just check its SHA-256).
Every AArch64 test script is affected because AArch64 -> aarch64. test0101
needs i386 -> x86 because it verifies the resulting AArch64 binary (hex2)
creating some x86 proof.
Also, a couple of x86 tests (test0000 and test0025) that are M2libc aware,
again because i386 -> x86 (hex2 ELF parts).
For any test there's a directory with a script for each architecture.
These scripts generate intermediate files in the dir during compilation,
with the same names no matter the arch. So if one tries to execute the
scripts in parallel they all fight for the files.
To allow for parallel testing, now we create a temporal dir named after
the arch to isolate the intermediate files. Scripts are patched
accordingly.
This also allows easier clean-up: now, removing the temporal dirs is
almost all that we need (and the per-test .gitignore files are replaced
with a couple of lines in test/.gitignore). A common script replaces
the per-test cleanup.sh. It gets the number of the test as an argument
and takes care of some minor special cases. The makefile is adapted to
use this new test/cleanup_test.sh script.
Those special files are created during the last stage of each test, but
only if the host arch matches the test. They're _not_ isolated here
because it's harder (due to how we do the checksum) and they cannot
collide unless emulation is used and several calls to make are made at
the same time.
- disables --bootstrap-mode where it was enabled, except for test1000
which needs to build in bootstrap-mode to check that M2-Planet can be
compiled by cc_*
- the only hold-out is test0021 which needs getcwd which is missing in
M2libc
- note that test0106 needs a fix to fgetc or it will never notice it has
reached the end of stdin
- // and # lines always appear in the result of read_all_tokens
- in bootstrap mode, // tokens (but not the subsequent lines) and #
lines are stripped. no preprocessing happens.
- in non-bootstrap mode, // lines are stripped and # lines stay for the
preprocessing phase
- updates tests to pass --bootstrap-mode when necessary