Skip to content

Commit de40424

Browse files
pks-tgitster
authored andcommitted
t5333: fix missing terminator for sed(1) 's' command
In 6aec8d3 (t: refactor tests depending on Perl to print data, 2025-04-03) we have changed some of the tests in t4150 to use sed(1) instead of Perl. One of the conversions is broken though: sed: -e expression #1, char 41: unterminated `s' command Curiously enough, the test itself still passes. This is caused by a sequence of failures: 1. The output of sed(1) is piped into git-update-ref(1), and because sed(1) is the upstream command we don't notice that it fails. 2. git-update-ref(1) does not receive any input and thus won't create any references. 3. We then repack the repository with the configured pseudo merges pattern, but as we didn't create any references the pattern doesn't match anything. 4. We use `test_pseudo_merges()` to compute the list of pseudo-merges and write it into a file. This file is empty as there are none. 5. The loop over the pseudo-merges becomes a no-op. 6. The final test succeeds as well because the number of lines in an empty file is obviously the same as the number of unique lines, namely zero. Fix the issue by adding the terminating '|' to the sed(1) command. Furthermore, make the test a tiny bit more robust by not using it as part of a pipe. Reported-by: SZEDER Gábor <[email protected]> Signed-off-by: Patrick Steinhardt <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 385e175 commit de40424

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

t/t5333-pseudo-merge-bitmaps.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,8 +234,8 @@ test_expect_success 'pseudo-merge pattern with capture groups' '
234234
test_commit_bulk 16 &&
235235
236236
git rev-list HEAD~16.. >in &&
237-
sed "s|\(.*\)|create refs/remotes/$r/tags/\1 \1" in |
238-
git update-ref --stdin || return 1
237+
sed "s|\(.*\)|create refs/remotes/$r/tags/\1 \1|" in >refs &&
238+
git update-ref --stdin <refs || return 1
239239
done &&
240240
241241
git \

0 commit comments

Comments
 (0)