chiark / gitweb /
regression tests: Properly handle adnshost et al exit status
Only adnstest has an exit status which is compatible with the test
harness's ideas. adnshost, in particular, uses `5' (skipped test) for
something else (worst failure was misconfig).
So we need to have two exit statuses, that of the program and that of
the test harness machinery. To this end:
* Enhance the syscall emulation of exit to record the exit status as a
normal syscall argument. This has to be done slightly ad hoc
because the hm_hsyscall macro cannot sanely generate nonreturning
calls. After this has been recorded, we do the shutdown activities
as before and exit the test harness with status 0.
* The previous shutdown function (now the core of the exit emulation)
is made available as Texit.
* adnstest (only) has a special test-harness-specific override to use
the core, so a call to exit is not recorded and instead adnstest's
exit status is that of the harness.
* Update all adnshost-based test cases to match. This was done with
this shell script (run once for each test, as needed):
#!/bin/sh
f=$1
o=${f%.sys}.out
rc=`sed -n '$s/^rc=//p' $o`
sed -e '$s/^rc=.*/rc=0/' $o >$o.new
mv $o.new $o
echo " exit $rc" >>$f
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
24 files changed: