Re: [Problem] test_must_fail makes possibly questionable assumptions about exit_code.
- From
- Eric Wong <e@80x24.org>
- Date
- Feb 28, 2018, 04:07 UTC
- Message-ID
- <20180228040718.GA9043@whir>
- In-Reply-To
- <20180228001616.GJ174036@aiede.svl.corp.google.com>
Jonathan Nieder <jrnieder@gmail.com> wrote:
> The fundamental thing is the actual Git commands, not the tests in the > testsuite, no?
Right. I've never been picky about exit codes; only that a non-zero happens on errors.
Show 7 quoted lines
> 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.
> c) We could have a special different exit code convention for > commands written in Perl. And then change expectations whenever a > command is rewritten in C. As you might expect, I don't like this > option.
I don't like it, either.
> d) We could wrap each command in an eval {...} block to convert the
> result from die() to exit 128.I prefer option d)