From: Jacob Abel <jacobabel@nullpo.dev>
To: git@vger.kernel.org
Cc: Jacob Abel <jacobabel@nullpo.dev>,
Junio C Hamano <gitster@pobox.com>,
Phillip Wood <phillip.wood123@gmail.com>
Subject: [PATCH v2] t2400: Fix test failures when using grep 2.5
Date: Sun, 16 Jul 2023 03:38:42 +0000 [thread overview]
Message-ID: <20230716033743.18200-1-jacobabel@nullpo.dev> (raw)
In-Reply-To: <20230715025512.7574-1-jacobabel@nullpo.dev>
Replace all cases of `\s` with `[[:blank:]]` or ` ` as older versions
of GNU grep (and from what it seems most versions of BSD grep) do not
handle `\s`.
For the same reason all cases of `\S` are replaced with `[^ ]`. It's not
an exact replacement (as it does not match tabs) but it is close enough
for this use case.
Replacing `\S` also needs to occur as `\S` is technically PCRE and not
part of ERE even though most modern versions of grep accept it as ERE.
This commit also drops `--sq` from a rev-parse call as it appears to be
a no-op.
Signed-off-by: Jacob Abel <jacobabel@nullpo.dev>
---
This patch is in response to build failures on GGG's Cirrus CI
freebsd_12 build jobs[1] and was prompted by a discussion thread [2].
These failures seem to be caused by the behavior outlined in [3].
Changes from v1:
* Change `[[:space:]]` to ` ` where possible and `[[:blank:]]`
(tabs and spaces) otherwise as it is more accurate than `[[:space:]]` [4].
* Change `[^[:space:]]` to `[^ ]` [4]. Technically `[^[:blank:]]` would be
more accurate but tabs shouldn't be present where this `[^ ]` is used.
* Drop `--sq` from rev-parse [4] (after further discussion [5]).
* Update commit message to match changes.
1. https://github.com/gitgitgadget/git/pull/1550/checks?check_run_id=14949695859
2. https://lore.kernel.org/git/CALnO6CDryTsguLshcQxx97ZxyY42Twu2hC2y1bLOsS-9zbqXMA@mail.gmail.com/
3. https://stackoverflow.com/questions/4233159/grep-regex-whitespace-behavior
4. https://lore.kernel.org/git/vn5sylull5lqpitsanlyan5fafxj5dhrxgo6k65c462dhqjbno@uwghfyfdixtk/
5. https://lore.kernel.org/git/bj27nq5aputhd66rkqer37vuc7qogpmn6nqyusladdy4k5it7k@u3yvvivrixsy/
Range-diff against v1:
1: 39f57add45 ! 1: ef4ebd7350 t2400: Fix test failures when using grep 2.5
@@ Metadata
## Commit message ##
t2400: Fix test failures when using grep 2.5
- Replace all cases of `\s` with `[[:space:]]` as older versions of GNU
- grep (and from what it seems most versions of BSD grep) do not handle
- `\s`.
+ Replace all cases of `\s` with `[[:blank:]]` or ` ` as older versions
+ of GNU grep (and from what it seems most versions of BSD grep) do not
+ handle `\s`.
+
+ For the same reason all cases of `\S` are replaced with `[^ ]`. It's not
+ an exact replacement (as it does not match tabs) but it is close enough
+ for this use case.
- For the same reason all cases of `\S` are replaced with `[^[:space:]]`.
Replacing `\S` also needs to occur as `\S` is technically PCRE and not
part of ERE even though most modern versions of grep accept it as ERE.
+ This commit also drops `--sq` from a rev-parse call as it appears to be
+ a no-op.
+
Signed-off-by: Jacob Abel <jacobabel@nullpo.dev>
## t/t2400-worktree-add.sh ##
@@ t/t2400-worktree-add.sh: test_wt_add_orphan_hint () {
if [ $use_branch -eq 1 ]
then
- grep -E "^hint:\s+git worktree add --orphan -b \S+ \S+\s*$" actual
-+ grep -E "^hint:[[:space:]]+git worktree add --orphan -b [^[:space:]]+ [^[:space:]]+[[:space:]]*$" actual
++ grep -E "^hint:[[:blank:]]+git worktree add --orphan -b [^ ]+ [^ ]+$" actual
else
- grep -E "^hint:\s+git worktree add --orphan \S+\s*$" actual
-+ grep -E "^hint:[[:space:]]+git worktree add --orphan [^[:space:]]+[[:space:]]*$" actual
++ grep -E "^hint:[[:blank:]]+git worktree add --orphan [^ ]+$" actual
fi
'
@@ t/t2400-worktree-add.sh: test_dwim_orphan () {
local fetch_error_text="fatal: No local or remote refs exist despite at least one remote" &&
local orphan_hint="hint: If you meant to create a worktree containing a new orphan branch" &&
- local invalid_ref_regex="^fatal: invalid reference:\s\+.*" &&
-+ local invalid_ref_regex="^fatal: invalid reference:[[:space:]]\+.*" &&
++ local invalid_ref_regex="^fatal: invalid reference: .*" &&
local bad_combo_regex="^fatal: '[a-z-]\+' and '[a-z-]\+' cannot be used together" &&
local git_ns="repo" &&
@@ t/t2400-worktree-add.sh: test_dwim_orphan () {
- headpath=$(git $dashc_args rev-parse --sq --path-format=absolute --git-path HEAD) &&
+ grep "$invalid_ref_regex" actual &&
+ ! grep "$orphan_hint" actual
+ else
+- headpath=$(git $dashc_args rev-parse --sq --path-format=absolute --git-path HEAD) &&
++ headpath=$(git $dashc_args rev-parse --path-format=absolute --git-path HEAD) &&
headcontents=$(cat "$headpath") &&
grep "HEAD points to an invalid (or orphaned) reference" actual &&
- grep "HEAD path:\s*.$headpath." actual &&
- grep "HEAD contents:\s*.$headcontents." actual &&
-+ grep "HEAD path:[[:space:]]*.$headpath." actual &&
-+ grep "HEAD contents:[[:space:]]*.$headcontents." actual &&
++ grep "HEAD path: .$headpath." actual &&
++ grep "HEAD contents: .$headcontents." actual &&
grep "$orphan_hint" actual &&
! grep "$info_text" actual
fi &&
t/t2400-worktree-add.sh | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/t/t2400-worktree-add.sh b/t/t2400-worktree-add.sh
index 0ac468e69e..1b693dfca9 100755
--- a/t/t2400-worktree-add.sh
+++ b/t/t2400-worktree-add.sh
@@ -417,9 +417,9 @@ test_wt_add_orphan_hint () {
grep "hint: If you meant to create a worktree containing a new orphan branch" actual &&
if [ $use_branch -eq 1 ]
then
- grep -E "^hint:\s+git worktree add --orphan -b \S+ \S+\s*$" actual
+ grep -E "^hint:[[:blank:]]+git worktree add --orphan -b [^ ]+ [^ ]+$" actual
else
- grep -E "^hint:\s+git worktree add --orphan \S+\s*$" actual
+ grep -E "^hint:[[:blank:]]+git worktree add --orphan [^ ]+$" actual
fi
'
@@ -709,7 +709,7 @@ test_dwim_orphan () {
local info_text="No possible source branch, inferring '--orphan'" &&
local fetch_error_text="fatal: No local or remote refs exist despite at least one remote" &&
local orphan_hint="hint: If you meant to create a worktree containing a new orphan branch" &&
- local invalid_ref_regex="^fatal: invalid reference:\s\+.*" &&
+ local invalid_ref_regex="^fatal: invalid reference: .*" &&
local bad_combo_regex="^fatal: '[a-z-]\+' and '[a-z-]\+' cannot be used together" &&
local git_ns="repo" &&
@@ -995,11 +995,11 @@ test_dwim_orphan () {
grep "$invalid_ref_regex" actual &&
! grep "$orphan_hint" actual
else
- headpath=$(git $dashc_args rev-parse --sq --path-format=absolute --git-path HEAD) &&
+ headpath=$(git $dashc_args rev-parse --path-format=absolute --git-path HEAD) &&
headcontents=$(cat "$headpath") &&
grep "HEAD points to an invalid (or orphaned) reference" actual &&
- grep "HEAD path:\s*.$headpath." actual &&
- grep "HEAD contents:\s*.$headcontents." actual &&
+ grep "HEAD path: .$headpath." actual &&
+ grep "HEAD contents: .$headcontents." actual &&
grep "$orphan_hint" actual &&
! grep "$info_text" actual
fi &&
--
2.39.3
next prev parent reply other threads:[~2023-07-16 3:52 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-15 2:55 [PATCH] t2400: Fix test failures when using grep 2.5 Jacob Abel
2023-07-15 8:59 ` Phillip Wood
2023-07-15 23:15 ` Jacob Abel
2023-07-16 1:08 ` Junio C Hamano
2023-07-16 2:55 ` Jacob Abel
2023-07-16 15:34 ` Phillip Wood
2023-07-17 2:38 ` Junio C Hamano
2023-07-18 0:44 ` Jacob Abel
2023-07-18 13:36 ` Phillip Wood
2023-07-21 4:35 ` Jacob Abel
2023-07-15 23:36 ` Jacob Abel
2023-07-16 3:38 ` Jacob Abel [this message]
2023-07-21 4:40 ` [PATCH v3 0/3] " Jacob Abel
2023-07-21 4:40 ` [PATCH v3 1/3] t2400: drop no-op `--sq` from rev-parse call Jacob Abel
2023-07-21 4:40 ` [PATCH v3 2/3] builtin/worktree.c: convert tab in advice to space Jacob Abel
2023-07-21 4:40 ` [PATCH v3 3/3] t2400: rewrite regex to avoid unintentional PCRE Jacob Abel
2023-07-21 15:16 ` Junio C Hamano
2023-07-21 15:49 ` Junio C Hamano
2023-07-22 2:36 ` Jacob Abel
2023-07-26 21:42 ` [PATCH v4 0/3] t2400: Fix test failures when using grep 2.5 Jacob Abel
2023-07-26 21:42 ` [PATCH v4 1/3] t2400: drop no-op `--sq` from rev-parse call Jacob Abel
2023-07-26 21:42 ` [PATCH v4 2/3] builtin/worktree.c: convert tab in advice to space Jacob Abel
2023-07-26 21:42 ` [PATCH v4 3/3] t2400: rewrite regex to avoid unintentional PCRE Jacob Abel
2023-07-26 22:09 ` [PATCH v4 0/3] t2400: Fix test failures when using grep 2.5 Junio C Hamano
2023-07-28 13:09 ` Phillip Wood
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230716033743.18200-1-jacobabel@nullpo.dev \
--to=jacobabel@nullpo.dev \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=phillip.wood123@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.