Re: [PATCH 1/2] t/test-lib.sh: support Korn shell by converting GIT_EXIT_OK to GIT_EXIT_CODE
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Oct 9, 2009, 19:28 UTC
- Message-ID
- <20091009192812.GA4122@progeny.tock>
- In-Reply-To
- <1eweIwf5YoFwmLPWwEFN69a2f-EUnj_kgiagVJoVQYfNQeLjlpm12U84RKxhzjh0NJv36SqO12lAX2c_x0WSgA@cipher.nrlssc.navy.mil>
Brandon Casey wrote:
Show 6 quoted lines
> So, rather than relying on the behavior of Bash in order to get the exit > code from $? inside die(), change GIT_EXIT_OK into GIT_EXIT_CODE, and set > it to the code that we want to exit with. This allows the test suite to > be run with the Korn shell. > > Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Sounds like a good idea. A few thoughts:
start_httpd() from lib-httpd.sh uses a similar pattern:
lib-httpd.sh:96: trap 'code=$?; stop_httpd; (exit $code); die' EXIT
It is probably worth changing that, too, unless GIT_TEST_HTTPD would not work on these platforms for some other reason.
"GIT_EXIT_CODE=1; exit 1" sounds repetitive to my ear. It’s probably just me, but if not, it might be worth adding a function like
expected_exit() {
GIT_EXIT_CODE=$1
exit "$1"
}I’m not sure.
> diff --git a/t/test-lib.sh b/t/test-lib.sh > index f2ca536..64e793a 100644 > --- a/t/test-lib.sh > +++ b/t/test-lib.sh
[...]
Show 14 quoted lines
> @@ -183,16 +183,16 @@ test_success=0
>
> die () {
> code=$?
> - if test -n "$GIT_EXIT_OK"
> + if test -n "$GIT_EXIT_CODE"
> then
> - exit $code
> + exit $GIT_EXIT_CODE
> else
> echo >&5 "FATAL: Unexpected exit with code $code"
> exit 1
> fi
> }$code can be removed now, right?
Jonathan