On Thu, Dec 8, 2016 at 10:04 AM, vi0oss <vi0oss@xxxxxxxxx> wrote: > On 12/08/2016 08:46 PM, Jeff King wrote: >> >> On Wed, Dec 07, 2016 at 05:22:30PM -0800, Stefan Beller wrote: >> >>> On Wed, Dec 7, 2016 at 4:39 PM, <vi0oss@xxxxxxxxx> wrote: >>> >>>> Previously test contained errorneous >>>> test_must_fail, which was masked by >>>> missing &&. >>> >>> I wonder if we could make either >>> the test_must_fail intelligent to detect such a broken && call chain >>> or the test_expect_success macro to see for those broken chains. >>> >>> >>> I wish we could improve that, but I spend a lot of brain cycles on it at >>> one point and couldn't come up with a workable solution. >>> >>> -Peff >>> > Why Git test use &&-chains instead of proper "set -e"? > "Because set -e kills the shell and we would want to keep going until the test suite is finished and display a summary what failed" would be my first reaction, but let's dig into history: bb79af9d09 might be helpful on that, but it doesn't explain why we use && chains. I could not find any commit explaining the use of && chains. e1970ce43abf might be interesting (the introduction of the test suite), as that did not contain && chains. I guess it would be hard(er) to implement e.g. test_must_fail in an environment where -e is set.