On Mon, Aug 15, 2005 at 06:26:29PM +0200, Ralf Wildenhues wrote: > Currently, AT_CHECK(cmd, ignore, , , fail_commands) > is somewhat superfluous, as fail_commands will never get executed > because we ignore the return value. The patch below changes that. > I regard this change in semantics as ok because of the nonsensical > behavior this combination had before, IMVHO.
AFAICS, fail_commands would run if cmd has a non-empty stdout or stderr. > ### snip loop.at ### > dnl autom4te -l autotest loop.at > loop; chmod +x loop; ./loop > m4_define([AT_PACKAGE_STRING],[loop]) > m4_define([AT_PACKAGE_BUGREPORT],[devnull]) > AT_INIT > AT_SETUP([loop]) > AT_CAPTURE_FILE([failures]) > for i in '' one '' two '' three; do > dnl Stylistic issue: we overwrite `failures' here to avoid quadratic > dnl growth of `testsuite.log' in the number of failures. > dnl This is because many tests might fail for the same reason. > AT_CHECK([test -z "$i"], ignore,ignore,ignore, [echo "$i" > failures]) Does replacing with this obviate the need for your patch? AT_CHECK([test -z "$i" || echo "$i" >failures], ignore, ignore, ignore) > done > > dnl next command generates the real failure: > AT_CHECK([test -s failures],1,ignore,ignore) This does look like a sound technique for testing many variations of a command. > AT_CLEANUP > ### snip ###
