Re: [Problem] test_must_fail makes possibly questionable assumptions about exit_code.
From: Jonathan Nieder <hidden>
Date: 2018-02-28 17:44:17
Randall S. Becker wrote:
The problem is actually in git code in its test suite that uses perl inline, not in my test code itself. The difficulty I'm having is placing this appropriate so that the signal handler gets used throughout the test suite including in the perl -e invocations. This is more a lack of my own understanding of plumbing of git test framework rather than of using or coding perl.
Can you elaborate with an example? My understanding was that test_must_fail is only for running git. If a test is running perl and wants to check its exit code, the test is supposed to use !, not test_must_fail. t/README backs me up: - use '! git cmd' when you want to make sure the git command exits with failure in a controlled way by calling "die()". Instead, use 'test_must_fail git cmd'. This will signal a failure if git dies in an unexpected way (e.g. segfault). On the other hand, don't use test_must_fail for running regular platform commands; just use '! cmd'. We are not in the business of verifying that the world given to us sanely works. So I don't consider the initial issue you raised a test issue at all! It's a bug in the git commands, and a fix for it should not be specific to the test suite. And now it sounds like there is a second issue: the test suite is overusing test_must_fail in some context and that needs to be fixed as well. Thanks, Jonathan