提交 4abf20f0 编写于 作者: Æ Ævar Arnfjörð Bjarmason 提交者: Junio C Hamano

tests: fix unportable "\?" and "\+" regex syntax

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. 2ed5c8e1 ("describe: setup working tree for --dirty", 2019-02-03)
2. c801170b ("t6120: test for describe with a bare repository",
   2019-02-03)
Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 35ee755a
...@@ -146,7 +146,7 @@ check_describe A-* HEAD ...@@ -146,7 +146,7 @@ check_describe A-* HEAD
test_expect_success 'describe works from outside repo using --git-dir' ' test_expect_success 'describe works from outside repo using --git-dir' '
git clone --bare "$TRASH_DIRECTORY" "$TRASH_DIRECTORY/bare" && git clone --bare "$TRASH_DIRECTORY" "$TRASH_DIRECTORY/bare" &&
git --git-dir "$TRASH_DIRECTORY/bare" describe >out && 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 check_describe "A-*[0-9a-f]" --dirty
...@@ -156,7 +156,7 @@ test_expect_success 'describe --dirty with --work-tree' ' ...@@ -156,7 +156,7 @@ test_expect_success 'describe --dirty with --work-tree' '
cd "$TEST_DIRECTORY" && cd "$TEST_DIRECTORY" &&
git --git-dir "$TRASH_DIRECTORY/.git" --work-tree "$TRASH_DIRECTORY" describe --dirty >"$TRASH_DIRECTORY/out" 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' ' test_expect_success 'set-up dirty work tree' '
...@@ -170,7 +170,7 @@ test_expect_success 'describe --dirty with --work-tree (dirty)' ' ...@@ -170,7 +170,7 @@ test_expect_success 'describe --dirty with --work-tree (dirty)' '
cd "$TEST_DIRECTORY" && cd "$TEST_DIRECTORY" &&
git --git-dir "$TRASH_DIRECTORY/.git" --work-tree "$TRASH_DIRECTORY" describe --dirty >"$TRASH_DIRECTORY/out" 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 check_describe "A-*[0-9a-f].mod" --dirty=.mod
...@@ -180,7 +180,7 @@ test_expect_success 'describe --dirty=.mod with --work-tree (dirty)' ' ...@@ -180,7 +180,7 @@ test_expect_success 'describe --dirty=.mod with --work-tree (dirty)' '
cd "$TEST_DIRECTORY" && cd "$TEST_DIRECTORY" &&
git --git-dir "$TRASH_DIRECTORY/.git" --work-tree "$TRASH_DIRECTORY" describe --dirty=.mod >"$TRASH_DIRECTORY/out" 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' ' test_expect_success 'describe --dirty HEAD' '
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册