Re: [PATCH v2 3/3] test-lib.sh: support -x option for shell-tracing
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 13, 2014, 18:43 UTC
- Message-ID
- <xmqq8ukj4xpn.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <20141010064727.GC17481@peff.net>
Jeff King <peff@peff.net> writes:
>> Hmph. I had originally intended to make this "set -x;" with a semicolon, >> to keep it split from $*. But I forgot to, and much to my surprise, all >> of the tests still passed.
Yup, I was wondering why you posted a version without the semicolon, which looked obviously bogus, as I've never seen you post an untested thing without marking as such.
Show 14 quoted lines
> + # The test itself is run with stderr put back to &4 (so either to
> + # /dev/null, or to the original stderr if --verbose was used).
> + {
> + test_eval_inner_ "$@" </dev/null >&3 2>&4
> + test_eval_ret_=$?
> + if test "$trace" = t
> + then
> + set +x
> + if test "$test_eval_ret_" != 0
> + then
> + say_color error >&4 "error: last command exited with \$?=$test_eval_ret_"
> + fi
> + fi
> + } 2>/dev/nullHmph, that is a clever way to squelch output from set+x (and everything that runs after the eval returns) I never thought of.
Nice.