Re: [PATCH v2 02/15] t: teach test_cmp_rev to accept ! for not-equals
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Oct 18, 2019, 22:45 UTC
- Message-ID
- <20191018224502.GL29845@szeder.dev>
- In-Reply-To
- <417e808466ee3e61a1719faa319fe0e796d5d271.1571435195.git.liu.denton@gmail.com>
On Fri, Oct 18, 2019 at 03:10:21PM -0700, Denton Liu wrote:
Show 15 quoted lines
> Currently, in the case where we are using test_cmp_rev() to report > not-equals, we write `! test_cmp_rev`. However, since test_cmp_rev() > contains > > r1=$(git rev-parse --verify "$1") && > r2=$(git rev-parse --verify "$2") && > > In the case where `git rev-parse` segfaults and dies unexpectedly, the > failure will be ignored. > > Rewrite test_cmp_rev() to optionally accept "!" as the first argument to > do a not-equals comparison. Rewrite `! test_cmp_rev` to `test_cmp_rev !` > in all tests to take advantage of this new functionality. > > Signed-off-by: Denton Liu <liu.denton@gmail.com>
Show 32 quoted lines
> diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
> index b299ecc326..76dce5f8ee 100644
> --- a/t/test-lib-functions.sh
> +++ b/t/test-lib-functions.sh
> @@ -1012,8 +1012,17 @@ test_must_be_empty () {
> fi
> }
>
> -# Tests that its two parameters refer to the same revision
> +# Tests that its two parameters refer to the same revision, or if '!' is
> +# provided first, that its other two parameters refer to different
> +# revisions.
> test_cmp_rev () {
> + local inverted_op
> + inverted_op='!='
> + if test $# -ge 1 && test "x$1" = 'x!'
> + then
> + inverted_op='='
> + shift
> + fi
> if test $# != 2
> then
> error "bug in the test script: test_cmp_rev requires two revisions, but got $#"
> @@ -1021,7 +1030,7 @@ test_cmp_rev () {
> local r1 r2
> r1=$(git rev-parse --verify "$1") &&
> r2=$(git rev-parse --verify "$2") &&
> - if test "$r1" != "$r2"
> + if test "$r1" "$inverted_op" "$r2"
> then
> cat >&4 <<-EOF
> error: two revisions point to different objects:A semi-rhetorical question: how will the output of 'test_cmp_rev ! HEAD HEAD' look like? :)