]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t3404: work around platform-specific behaviour on macOS 10.15
authorPatrick Steinhardt <ps@pks.im>
Wed, 16 Oct 2024 08:13:07 +0000 (10:13 +0200)
committerTaylor Blau <me@ttaylorr.com>
Wed, 16 Oct 2024 21:00:49 +0000 (17:00 -0400)
Two of our tests in t3404 use indented HERE docs where leading tabs on
some of the lines are actually relevant. The tabs do get removed though,
and we try to fix this up by using sed(1) to replace leading tabs in the
actual output, as well. But macOS 10.15 uses an oldish version of sed(1)
that has BSD lineage, which does not understand "\t", and thus we fail
to strip those leading tabs and fail the test.

Address this issue by using `q_to_tab` such that we do not have to strip
leading tabs from the actual output.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
t/t3404-rebase-interactive.sh

index f171af3061db9538aa0291e642530e098bff7124..7ce752378039b42580e0b84970dad8a05d4815f8 100755 (executable)
@@ -1917,18 +1917,17 @@ test_expect_success '--update-refs updates refs correctly' '
        test_cmp_rev HEAD~1 refs/heads/third &&
        test_cmp_rev HEAD refs/heads/no-conflict-branch &&
 
-       cat >expect <<-\EOF &&
+       q_to_tab >expect <<-\EOF &&
        Successfully rebased and updated refs/heads/update-refs.
        Updated the following refs with --update-refs:
-               refs/heads/first
-               refs/heads/no-conflict-branch
-               refs/heads/second
-               refs/heads/third
+       Qrefs/heads/first
+       Qrefs/heads/no-conflict-branch
+       Qrefs/heads/second
+       Qrefs/heads/third
        EOF
 
        # Clear "Rebasing (X/Y)" progress lines and drop leading tabs.
-       sed -e "s/Rebasing.*Successfully/Successfully/g" -e "s/^\t//g" \
-               <err >err.trimmed &&
+       sed "s/Rebasing.*Successfully/Successfully/g" <err >err.trimmed &&
        test_cmp expect err.trimmed
 '
 
@@ -2178,19 +2177,18 @@ test_expect_success '--update-refs: check failed ref update' '
        test_must_fail git rebase --continue 2>err &&
        grep "update_ref failed for ref '\''refs/heads/second'\''" err &&
 
-       cat >expect <<-\EOF &&
+       q_to_tab >expect <<-\EOF &&
        Updated the following refs with --update-refs:
-               refs/heads/first
-               refs/heads/no-conflict-branch
-               refs/heads/third
+       Qrefs/heads/first
+       Qrefs/heads/no-conflict-branch
+       Qrefs/heads/third
        Failed to update the following refs with --update-refs:
-               refs/heads/second
+       Qrefs/heads/second
        EOF
 
        # Clear "Rebasing (X/Y)" progress lines and drop leading tabs.
        tail -n 6 err >err.last &&
-       sed -e "s/Rebasing.*Successfully/Successfully/g" -e "s/^\t//g" \
-               <err.last >err.trimmed &&
+       sed "s/Rebasing.*Successfully/Successfully/g" <err.last >err.trimmed &&
        test_cmp expect err.trimmed
 '