Andrew Black wrote:
Greetings
Attached is the second version of the replacement runall script. In
this version, I have tried to address the concerns raised by Martin in
the previous review of the source.
One important bug fix made was to resolve the SEGV issue that was
encountered on Solaris. The cause was an incorrect termination of the
argv array used in the call to execv().
Running tests seems to work fine but most examples are reported
with the FORMAT code and those that read from stdin are killed
with SIGHUP. Are the examples supposed to be handled correctly
in this version?
To make it easier to debug these kinds of issues I think it might
be handy to add a verbose option and print out the command line
(i.e., the argv vector) used to invoke each program including any
redirection (using shell notation). I.e., invoking
./runall -v -x"--foo --bar" ./a.out ./b.out ./c.out
should produce something like
./a.out --foo --bar </dev/null >a.output 2>&1
./b.out --foo --bar </dev/null >b.output 2>&1
status=1
./c.out --foo --bar </dev/null >c.output 2>&1
status=134 (SIGABRT, core dumped)
after a successful invocation of ./a.out, ./b.out having exited
with a status of 1, and ./c.out having exited with SIGABRT and
producing a core dump. (Additional output could be added for
failed assertions, diffs, etc.)
Martin