Skip to content

Commit 727331d

Browse files
harry-hovgitster
authored andcommitted
t6300: use function to test trailer options
Add a function to test trailer options. This will make tests look cleaner, as well as will make it easier to add new tests for trailers in the future. Mentored-by: Christian Couder <[email protected]> Mentored-by: Heba Waly <[email protected]> Signed-off-by: Hariom Verma <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent e636282 commit 727331d

File tree

1 file changed

+47
-43
lines changed

1 file changed

+47
-43
lines changed

t/t6300-for-each-ref.sh

Lines changed: 47 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -814,53 +814,57 @@ test_expect_success 'set up trailers for next test' '
814814
EOF
815815
'
816816

817-
test_expect_success '%(trailers:unfold) unfolds trailers' '
818-
{
819-
unfold <trailers
820-
echo
821-
} >expect &&
822-
git for-each-ref --format="%(trailers:unfold)" refs/heads/main >actual &&
823-
test_cmp expect actual &&
824-
git for-each-ref --format="%(contents:trailers:unfold)" refs/heads/main >actual &&
825-
test_cmp expect actual
826-
'
817+
test_trailer_option () {
818+
title=$1 option=$2
819+
cat >expect
820+
test_expect_success "$title" '
821+
git for-each-ref --format="%($option)" refs/heads/main >actual &&
822+
test_cmp expect actual &&
823+
git for-each-ref --format="%(contents:$option)" refs/heads/main >actual &&
824+
test_cmp expect actual
825+
'
826+
}
827827

828-
test_expect_success '%(trailers:only) shows only "key: value" trailers' '
829-
{
830-
grep -v patch.description <trailers &&
831-
echo
832-
} >expect &&
833-
git for-each-ref --format="%(trailers:only)" refs/heads/main >actual &&
834-
test_cmp expect actual &&
835-
git for-each-ref --format="%(contents:trailers:only)" refs/heads/main >actual &&
836-
test_cmp expect actual
837-
'
828+
test_trailer_option '%(trailers:unfold) unfolds trailers' \
829+
'trailers:unfold' <<-EOF
830+
$(unfold <trailers)
838831
839-
test_expect_success '%(trailers:only) and %(trailers:unfold) work together' '
840-
{
841-
grep -v patch.description <trailers | unfold &&
842-
echo
843-
} >expect &&
844-
git for-each-ref --format="%(trailers:only,unfold)" refs/heads/main >actual &&
845-
test_cmp expect actual &&
846-
git for-each-ref --format="%(trailers:unfold,only)" refs/heads/main >actual &&
847-
test_cmp actual actual &&
848-
git for-each-ref --format="%(contents:trailers:only,unfold)" refs/heads/main >actual &&
849-
test_cmp expect actual &&
850-
git for-each-ref --format="%(contents:trailers:unfold,only)" refs/heads/main >actual &&
851-
test_cmp actual actual
852-
'
853-
854-
test_expect_success '%(trailers) rejects unknown trailers arguments' '
855-
# error message cannot be checked under i18n
856-
cat >expect <<-EOF &&
832+
EOF
833+
834+
test_trailer_option '%(trailers:only) shows only "key: value" trailers' \
835+
'trailers:only' <<-EOF
836+
$(grep -v patch.description <trailers)
837+
838+
EOF
839+
840+
test_trailer_option '%(trailers:only) and %(trailers:unfold) work together' \
841+
'trailers:only,unfold' <<-EOF
842+
$(grep -v patch.description <trailers | unfold)
843+
844+
EOF
845+
846+
test_trailer_option '%(trailers:unfold) and %(trailers:only) work together' \
847+
'trailers:unfold,only' <<-EOF
848+
$(grep -v patch.description <trailers | unfold)
849+
850+
EOF
851+
852+
test_failing_trailer_option () {
853+
title=$1 option=$2
854+
cat >expect
855+
test_expect_success "$title" '
856+
# error message cannot be checked under i18n
857+
test_must_fail git for-each-ref --format="%($option)" refs/heads/main 2>actual &&
858+
test_i18ncmp expect actual &&
859+
test_must_fail git for-each-ref --format="%(contents:$option)" refs/heads/main 2>actual &&
860+
test_i18ncmp expect actual
861+
'
862+
}
863+
864+
test_failing_trailer_option '%(trailers) rejects unknown trailers arguments' \
865+
'trailers:unsupported' <<-\EOF
857866
fatal: unknown %(trailers) argument: unsupported
858867
EOF
859-
test_must_fail git for-each-ref --format="%(trailers:unsupported)" 2>actual &&
860-
test_i18ncmp expect actual &&
861-
test_must_fail git for-each-ref --format="%(contents:trailers:unsupported)" 2>actual &&
862-
test_i18ncmp expect actual
863-
'
864868

865869
test_expect_success 'if arguments, %(contents:trailers) shows error if colon is missing' '
866870
cat >expect <<-EOF &&

0 commit comments

Comments
 (0)