t3404: work around platform-specific behaviour on macOS 10.15

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>
This commit is contained in:
Patrick Steinhardt
2024-10-16 10:13:07 +02:00
committed by Taylor Blau
parent 3acb1f7199
commit f74949fa3d

View File

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