Thread (25 messages) flat view 25 messages, 5 authors, 2018-03-01

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help