t6300: make `%(raw:size) --shell` test more robust

This test populates its `expect` file solely by appending content but fails to ensure that the file starts out empty. The test succeeds only because no earlier test populated a file of the exact same name, however this is an accident waiting to happen. Make the test more robust by ensuring that it contains exactly the intended content. While at it, simplify the implementation via a straightforward `sed` application and by avoiding dropping out of the single-quote context within the test body (thus eliminating a hard-to-digest combination of apostrophes and backslashes). Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Reviewed-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Eric Sunshine committed Dec 9, 2021 at 00:11 UTC efe47c83b266b3ca12d646f5a8f1c6a71f0d6e44
1 file changed +1 -4
t/t6300-for-each-ref.sh
+1 -4
@@ -955,10 +955,7 @@ test_expect_success '%(raw) with --shell and --sort=raw must fail' '
955 '
956
957 test_expect_success '%(raw:size) with --shell' '
958 - git for-each-ref --format="%(raw:size)" | while read line
959 - do
960 - echo "'\''$line'\''" >>expect
961 - done &&
958 + git for-each-ref --format="%(raw:size)" | sed "s/^/$SQ/;s/$/$SQ/" >expect &&
959 git for-each-ref --format="%(raw:size)" --shell >actual &&
960 test_cmp expect actual
961 '