In article <20100603164416.gd6...@apb-laptoy.apb.alt.za>, Alan Barrett <a...@cequrux.com> wrote: >On Thu, 03 Jun 2010, Christos Zoulas wrote: >> Log Message: >> Pass all the set -e tests. >> >> To generate a diff of this commit: >> cvs rdiff -u -r1.6 -r1.7 src/tests/util/sh/t_set_e.sh > >Now the tests don't match the comments. > >> # according to the standard, only failing *simple* commands >> # cause an exit under -e. () is not a simple command. >> - dcheck '(set -e; (set +e; false; echo OK; false); echo OK)' 'OK OK' >> - echeck '(set -e; (set +e; false; echo OK; false); echo OK)' 'OK OK' >> + dcheck '(set -e; (set +e; false; echo OK; false); echo OK)' 'OK' >> + echeck '(set -e; (set +e; false; echo OK; false); echo OK)' 'OK' > >The comment explains that failure of the inner subshell should not cause >the outer subshell to exit. This means that both the inner and outer >"echo OK" should be performed; but the test expects only the inner "echo >OK" to be performed. Similarly for the other changed tests.
Well, I was not sure what to do there [fix the comments, or remove the tests]. Bash and ksh behave the same way as ours does, so I am inclined to believe that the standard is mis-worded or mis-interpreted. christos