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

Reply via email to