Thanks Junio for review on the previous round. PATCH 1/3 - Cleanup test_atom to be less error-prone PATCH 2/3 - Fix hidden breakage PATCH 3/3 - Unchanged Kousik Sanagavarapu (3): t/t6300: cleanup test_atom t/t6300: introduce test_bad_atom ref-filter: add mailmap support Documentation/git-for-each-ref.txt | 6 +- ref-filter.c | 152 ++++++++++++++++++++++------- t/t6300-for-each-ref.sh | 123 +++++++++++++++++++++-- 3 files changed, 239 insertions(+), 42 deletions(-) Range-diff against v1: -: ---------- > 1: b28e858e35 t/t6300: cleanup test_atom 1: 0a90b67889 ! 2: ee90d017d5 t/t6300: introduce test_bad_atom() @@ Metadata Author: Kousik Sanagavarapu <five231003@xxxxxxxxx> ## Commit message ## - t/t6300: introduce test_bad_atom() + t/t6300: introduce test_bad_atom - Introduce a new function "test_bad_atom()", which is similar to + Introduce a new function "test_bad_atom", which is similar to "test_atom()" but should be used to check whether the correct error message is shown on stderr. - Like "test_atom()", the new function takes three arguments. The three + Like "test_atom", the new function takes three arguments. The three arguments specify the ref, the format and the expected error message respectively, with an optional fourth argument for tweaking "test_expect_*" (which is by default "success"). @@ t/t6300-for-each-ref.sh: test_expect_success 'arguments to %(objectname:short=) test_must_fail git for-each-ref --format="%(objectname:short=foo)" ' -+test_bad_atom() { ++test_bad_atom () { + case "$1" in + head) ref=refs/heads/main ;; + tag) ref=refs/tags/testtag ;; + sym) ref=refs/heads/sym ;; + *) ref=$1 ;; + esac -+ printf '%s\n' "$3">expect -+ test_expect_${4:-success} $PREREQ "err basic atom: $1 $2" " -+ test_must_fail git for-each-ref --format='%($2)' $ref 2>actual && -+ test_cmp expect actual -+ " ++ format=$2 ++ test_do=test_expect_${4:-success} ++ ++ printf '%s\n' "$3" >expect ++ $test_do $PREREQ "err basic atom: $ref $format" ' ++ test_must_fail git for-each-ref \ ++ --format="%($format)" "$ref" 2>error && ++ test_cmp expect error ++ ' +} + +test_bad_atom head 'authoremail:foo' \ + 'fatal: unrecognized %(authoremail) argument: foo' + +test_bad_atom tag 'taggeremail:localpart trim' \ -+ 'fatal: unrecognized %(taggeremail) argument: trim' ++ 'fatal: unrecognized %(taggeremail) argument: localpart trim' + test_date () { f=$1 && 2: 63fc69f4dc ! 3: fdc14fe80b ref-filter: add mailmap support @@ t/t6300-for-each-ref.sh: test_atom tag '*objectname' $(git rev-parse refs/tags/t test_atom tag taggerdate 'Tue Jul 4 01:18:45 2006 +0200' test_atom tag creator 'C O Mitter <committer@xxxxxxxxxxx> 1151968725 +0200' test_atom tag creatordate 'Tue Jul 4 01:18:45 2006 +0200' -@@ t/t6300-for-each-ref.sh: test_bad_atom() { +@@ t/t6300-for-each-ref.sh: test_bad_atom () { test_bad_atom head 'authoremail:foo' \ 'fatal: unrecognized %(authoremail) argument: foo' @@ t/t6300-for-each-ref.sh: test_bad_atom() { + 'fatal: unrecognized %(taggeremail) argument: ;localpart trim' + test_bad_atom tag 'taggeremail:localpart trim' \ - 'fatal: unrecognized %(taggeremail) argument: trim' - +- 'fatal: unrecognized %(taggeremail) argument: localpart trim' ++ 'fatal: unrecognized %(taggeremail) argument: trim' ++ +test_bad_atom tag 'taggeremail:mailmap,mailmap,trim,qux,localpart,trim' \ + 'fatal: unrecognized %(taggeremail) argument: qux,localpart,trim' -+ + test_date () { f=$1 && - committer_date=$2 && -- 2.42.0.273.ge948a9aaf4