git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [Problem] test_must_fail makes possibly questionable assumptions about exit_code.

From
EWEric Wong <e@80x24.org>
Date
Feb 28, 2018, 07:42 UTC
Message-ID
<20180228074251.GA11673@dcvr>
In-Reply-To
<20180228050034.GA373@sigill.intra.peff.net>
Jeff King <peff@peff.net> wrote:
Show 18 quoted lines
> On Wed, Feb 28, 2018 at 04:07:18AM +0000, Eric Wong wrote:
> 
> > > In the rest of git, die() makes a command exit with status 128.  The
> > > trouble here is that our code in Perl is assuming the same meaning for
> > > die() but using perl's die builtin instead.  That suggests a few
> > > options:
> > > 
> > >  a) We could override the meaning of die() in Git.pm.  This feels
> > >     ugly but if it works, it would be a very small patch.
> > 
> > Unlikely to work since I think we use eval {} to trap exceptions
> > from die.
> > 
> > >  b) We could forbid use of die() and use some git_die() instead (but
> > >     with a better name) for our own error handling.
> > 
> > Call sites may be dual-use: "die" can either be caught by an
> > eval or used to show an error message to the user.
<snip>
Show 12 quoted lines
> > >  d) We could wrap each command in an eval {...} block to convert the
> > >     result from die() to exit 128.
> > 
> > I prefer option d)
> 
> FWIW, I agree with all of that. You can do (d) without an enclosing eval
> block by just hooking the __DIE__ handler, like:
> 
> $SIG{__DIE__} = sub {
>   print STDERR "fatal: @_\n";
>   exit 128;
> };
Looks like it has the same problems I pointed out with a) and b).
Previous: Jeff KingNext: Jeff King
Message 5 of 26 in “[Problem] test_must_fail makes possibly questionable assumptions about exit_code.”
  1. Randall S. BeckerFeb 27, 2018
  2. Jonathan NiederFeb 28, 2018
  3. Eric WongFeb 28, 2018
  4. Jeff KingFeb 28, 2018
  5. Eric WongFeb 28, 2018
  6. Jeff KingFeb 28, 2018
  7. Randall S. BeckerFeb 28, 2018
  8. demerphqFeb 28, 2018
  9. Jeff KingMar 1, 2018
  10. demerphqMar 1, 2018
  11. Randall S. BeckerMar 1, 2018
  12. Jeff KingMar 1, 2018
  13. demerphqMar 1, 2018
  14. Junio C HamanoFeb 28, 2018
  15. demerphqFeb 28, 2018
  16. Randall S. BeckerFeb 28, 2018
  17. demerphqFeb 28, 2018
  18. demerphqFeb 28, 2018
  19. Randall S. BeckerFeb 28, 2018
  20. Jonathan NiederFeb 28, 2018
  21. Randall S. BeckerFeb 28, 2018
  22. Jonathan NiederFeb 28, 2018
  23. Randall S. BeckerFeb 28, 2018
  24. Randall S. BeckerFeb 28, 2018
  25. Jonathan NiederFeb 28, 2018
  26. Jeff KingMar 1, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.