t5411: new helper filter_out_user_friendly_and_stable_output

New helper `filter_out_user_friendly_and_stable_output` will call
common helpr function `make_user_friendly_and_stable_output` and use
additional arguments to filter out messages for specific test cases.

Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jiang Xin <zhiyou.jx@alibaba-inc.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jiang Xin 2020-11-11 19:32:00 +08:00 committed by Junio C Hamano
parent 5d5f4ea30d
commit cf3d868f35
3 changed files with 17 additions and 14 deletions

View file

@ -42,7 +42,7 @@ create_commits_in () {
make_user_friendly_and_stable_output () {
sed \
-e "s/ *\$//" \
-e "s/ */ /g" \
-e "s/ */ /g" \
-e "s/'/\"/g" \
-e "s/ / /g" \
-e "s/$A/<COMMIT-A>/g" \
@ -54,3 +54,8 @@ make_user_friendly_and_stable_output () {
-e "s#To $URL_PREFIX/upstream.git#To <URL/of/upstream.git>#" \
-e "/^error: / d"
}
filter_out_user_friendly_and_stable_output () {
make_user_friendly_and_stable_output |
sed -n ${1+"$@"}
}

View file

@ -36,11 +36,10 @@ test_expect_success "git-push --atomic ($PROTOCOL)" '
main \
$B:refs/heads/next \
>out 2>&1 &&
make_user_friendly_and_stable_output <out |
sed -n \
-e "/^To / { s/ */ /g; p; }" \
-e "/^ ! / { s/ */ /g; p; }" \
>actual &&
filter_out_user_friendly_and_stable_output \
-e "/^To / { p; }" \
-e "/^ ! / { p; }" \
<out >actual &&
cat >expect <<-EOF &&
To <URL/of/upstream.git>
! [rejected] main -> main (non-fast-forward)

View file

@ -37,16 +37,15 @@ test_expect_success "git-push --atomic ($PROTOCOL/porcelain)" '
main \
$B:refs/heads/next \
>out 2>&1 &&
make_user_friendly_and_stable_output <out |
sed -n \
-e "s/^# GETTEXT POISON #//" \
-e "/^To / { s/ */ /g; p; }" \
-e "/^! / { s/ */ /g; p; }" \
>actual &&
filter_out_user_friendly_and_stable_output \
-e "s/^# GETTEXT POISON #//" \
-e "/^To / { p; }" \
-e "/^! / { p; }" \
<out >actual &&
cat >expect <<-EOF &&
To <URL/of/upstream.git>
! refs/heads/main:refs/heads/main [rejected] (non-fast-forward)
! <COMMIT-B>:refs/heads/next [rejected] (atomic push failed)
! refs/heads/main:refs/heads/main [rejected] (non-fast-forward)
! <COMMIT-B>:refs/heads/next [rejected] (atomic push failed)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&