t4202: clarify intent by creating expected content less cleverly

Several tests assign the output of `$(...)` command substitution to an
"expect" variable, taking advantage of the fact that `$(...)` folds out
the final line terminator while leaving internal line terminators
intact. They do this because the "actual" string with which "expect"
will be compared is shaped the same way. However, this intent (having
internal line terminators, but no final line terminator) is not
necessarily obvious at first glance and may confuse casual readers. The
intent can be made more obvious by using `printf` instead, with which
line termination is stated clearly:

    printf "sixth\nthird"

In fact, many other tests in this script already use `printf` for
precisely this purpose, thus it is an established pattern. Therefore,
convert these tests to employ `printf`, as well.

While at it, modernize the tests to use test_cmp() to compare the
expected and actual output rather than using the semi-deprecated
`verbose test "$x" = "$y"`.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Eric Sunshine 2021-12-09 00:11:00 -05:00 committed by Junio C Hamano
parent fe13adb17b
commit 88511d271b

View file

@ -120,48 +120,48 @@ test_expect_success 'diff-filter=A' '
test_expect_success 'diff-filter=M' ' test_expect_success 'diff-filter=M' '
actual=$(git log --pretty="format:%s" --diff-filter=M HEAD) && git log --pretty="format:%s" --diff-filter=M HEAD >actual &&
expect=$(echo second) && printf "second" >expect &&
verbose test "$actual" = "$expect" test_cmp expect actual
' '
test_expect_success 'diff-filter=D' ' test_expect_success 'diff-filter=D' '
actual=$(git log --no-renames --pretty="format:%s" --diff-filter=D HEAD) && git log --no-renames --pretty="format:%s" --diff-filter=D HEAD >actual &&
expect=$(echo sixth ; echo third) && printf "sixth\nthird" >expect &&
verbose test "$actual" = "$expect" test_cmp expect actual
' '
test_expect_success 'diff-filter=R' ' test_expect_success 'diff-filter=R' '
actual=$(git log -M --pretty="format:%s" --diff-filter=R HEAD) && git log -M --pretty="format:%s" --diff-filter=R HEAD >actual &&
expect=$(echo third) && printf "third" >expect &&
verbose test "$actual" = "$expect" test_cmp expect actual
' '
test_expect_success 'diff-filter=C' ' test_expect_success 'diff-filter=C' '
actual=$(git log -C -C --pretty="format:%s" --diff-filter=C HEAD) && git log -C -C --pretty="format:%s" --diff-filter=C HEAD >actual &&
expect=$(echo fourth) && printf "fourth" >expect &&
verbose test "$actual" = "$expect" test_cmp expect actual
' '
test_expect_success 'git log --follow' ' test_expect_success 'git log --follow' '
actual=$(git log --follow --pretty="format:%s" ichi) && git log --follow --pretty="format:%s" ichi >actual &&
expect=$(echo third ; echo second ; echo initial) && printf "third\nsecond\ninitial" >expect &&
verbose test "$actual" = "$expect" test_cmp expect actual
' '
test_expect_success 'git config log.follow works like --follow' ' test_expect_success 'git config log.follow works like --follow' '
test_config log.follow true && test_config log.follow true &&
actual=$(git log --pretty="format:%s" ichi) && git log --pretty="format:%s" ichi >actual &&
expect=$(echo third ; echo second ; echo initial) && printf "third\nsecond\ninitial" >expect &&
verbose test "$actual" = "$expect" test_cmp expect actual
' '
test_expect_success 'git config log.follow does not die with multiple paths' ' test_expect_success 'git config log.follow does not die with multiple paths' '
@ -176,9 +176,9 @@ test_expect_success 'git config log.follow does not die with no paths' '
test_expect_success 'git config log.follow is overridden by --no-follow' ' test_expect_success 'git config log.follow is overridden by --no-follow' '
test_config log.follow true && test_config log.follow true &&
actual=$(git log --no-follow --pretty="format:%s" ichi) && git log --no-follow --pretty="format:%s" ichi >actual &&
expect="third" && printf "third" >expect &&
verbose test "$actual" = "$expect" test_cmp expect actual
' '
# Note that these commits are intentionally listed out of order. # Note that these commits are intentionally listed out of order.