]> granicus.if.org Git - git/commitdiff
tests: fix unportable "\?" and "\+" regex syntax
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Thu, 21 Feb 2019 19:28:48 +0000 (20:28 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 22 Feb 2019 04:58:19 +0000 (20:58 -0800)
Fix widely supported but non-POSIX basic regex syntax introduced in
[1] and [2]. On GNU, NetBSD and FreeBSD the following works:

    $ echo xy >f
    $ grep 'xy\?' f; echo $?
    xy
    0

The same goes for "\+". The "?" and "+" syntax is not in the BRE
syntax, just in ERE, but on some implementations it can be invoked by
prefixing the meta-operator with "\", but not on OpenBSD:

    $ uname -a
    OpenBSD obsd.my.domain 6.2 GENERIC#132 amd64
    $ grep --version
    grep version 0.9
    $ grep 'xy\?' f; echo $?
    1

Let's fix this by moving to ERE syntax instead, where "?" and "+" are
universally supported:

    $ grep -E 'xy?' f; echo $?
    xy
    0

1. 2ed5c8e174 ("describe: setup working tree for --dirty", 2019-02-03)
2. c801170b0c ("t6120: test for describe with a bare repository",
   2019-02-03)

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t6120-describe.sh

index ee5b03ee18ada34a7b8012d219cbb63c4bb7f256..2b883d8174036b7d2246fcd89f239d7ecde049d4 100755 (executable)
@@ -146,7 +146,7 @@ check_describe A-* HEAD
 test_expect_success 'describe works from outside repo using --git-dir' '
        git clone --bare "$TRASH_DIRECTORY" "$TRASH_DIRECTORY/bare" &&
        git --git-dir "$TRASH_DIRECTORY/bare" describe >out &&
-       grep "^A-[1-9][0-9]\?-g[0-9a-f]\+$" out
+       grep -E "^A-[1-9][0-9]?-g[0-9a-f]+$" out
 '
 
 check_describe "A-*[0-9a-f]" --dirty
@@ -156,7 +156,7 @@ test_expect_success 'describe --dirty with --work-tree' '
                cd "$TEST_DIRECTORY" &&
                git --git-dir "$TRASH_DIRECTORY/.git" --work-tree "$TRASH_DIRECTORY" describe --dirty >"$TRASH_DIRECTORY/out"
        ) &&
-       grep "^A-[1-9][0-9]\?-g[0-9a-f]\+$" out
+       grep -E "^A-[1-9][0-9]?-g[0-9a-f]+$" out
 '
 
 test_expect_success 'set-up dirty work tree' '
@@ -170,7 +170,7 @@ test_expect_success 'describe --dirty with --work-tree (dirty)' '
                cd "$TEST_DIRECTORY" &&
                git --git-dir "$TRASH_DIRECTORY/.git" --work-tree "$TRASH_DIRECTORY" describe --dirty >"$TRASH_DIRECTORY/out"
        ) &&
-       grep "^A-[1-9][0-9]\?-g[0-9a-f]\+-dirty$" out
+       grep -E "^A-[1-9][0-9]?-g[0-9a-f]+-dirty$" out
 '
 
 check_describe "A-*[0-9a-f].mod" --dirty=.mod
@@ -180,7 +180,7 @@ test_expect_success 'describe --dirty=.mod with --work-tree (dirty)' '
                cd "$TEST_DIRECTORY" &&
                git --git-dir "$TRASH_DIRECTORY/.git" --work-tree "$TRASH_DIRECTORY" describe --dirty=.mod >"$TRASH_DIRECTORY/out"
        ) &&
-       grep "^A-[1-9][0-9]\?-g[0-9a-f]\+.mod$" out
+       grep -E "^A-[1-9][0-9]?-g[0-9a-f]+.mod$" out
 '
 
 test_expect_success 'describe --dirty HEAD' '