Greetings Martin

The cause of the problems being experienced with the examples is that the name of the flag used to specify the input/output directory is -d in this version of the script, rather than -x (as used by runall.sh). Similarly, the name of the flag used to specify command line options in this version is -x, rather than -X (as used by runall.sh).

If you want to get a list of known command line options, you can pass the script -h or -? (No support for --help yet)

--Andrew Black

Martin Sebor wrote:
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

Reply via email to