When commit 618310a taught t6302 to run without the GPG
prerequisite, it did so by conditionally creating the signed
tags only when gpg is available. As a result, further tests
need to take this into account, which they can do with the
test_prepare_expect helper. This is a minor hassle, though,
as the helper cannot easily cover all cases (it just matches
"signed" in the output, so all output must include the
actual refname).

Instead, let's take a different approach. We'll always
create the tags, and only conditionally sign them. This does
mean our tag-names are a minor lie, but it lets the tests
which do not care about signing easily behave the same in
all settings. We'll include a comment to document our lie
and avoid confusing further test-writers.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2016-05-09 12:49:00 -04:00 коммит произвёл Junio C Hamano
Родитель 618310a3df
Коммит f30721807f
1 изменённых файлов: 22 добавлений и 23 удалений

Просмотреть файл

@ -5,15 +5,6 @@ test_description='test for-each-refs usage of ref-filter APIs'
. ./test-lib.sh
. "$TEST_DIRECTORY"/lib-gpg.sh
test_prepare_expect () {
if test_have_prereq GPG
then
cat
else
sed '/signed/d'
fi
}
test_expect_success 'setup some history and refs' '
test_commit one &&
test_commit two &&
@ -22,11 +13,19 @@ test_expect_success 'setup some history and refs' '
test_commit four &&
git tag -m "An annotated tag" annotated-tag &&
git tag -m "Annonated doubly" doubly-annotated-tag annotated-tag &&
# Note that these "signed" tags might not actually be signed.
# Tests which care about the distinction should be marked
# with the GPG prereq.
if test_have_prereq GPG
then
git tag -s -m "A signed tag" signed-tag &&
git tag -s -m "Signed doubly" doubly-signed-tag signed-tag
sign=-s
else
sign=
fi &&
git tag $sign -m "A signed tag" signed-tag &&
git tag $sign -m "Signed doubly" doubly-signed-tag signed-tag &&
git checkout master &&
git update-ref refs/odd/spot master
'
@ -42,7 +41,7 @@ test_expect_success 'filtering with --points-at' '
'
test_expect_success 'check signed tags with --points-at' '
test_prepare_expect <<-\EOF | sed -e "s/Z$//" >expect &&
sed -e "s/Z$//" >expect <<-\EOF &&
refs/heads/side Z
refs/tags/annotated-tag four
refs/tags/four Z
@ -65,7 +64,7 @@ test_expect_success 'filtering with --merged' '
'
test_expect_success 'filtering with --no-merged' '
test_prepare_expect >expect <<-\EOF &&
cat >expect <<-\EOF &&
refs/heads/side
refs/tags/annotated-tag
refs/tags/doubly-annotated-tag
@ -78,7 +77,7 @@ test_expect_success 'filtering with --no-merged' '
'
test_expect_success 'filtering with --contains' '
test_prepare_expect >expect <<-\EOF &&
cat >expect <<-\EOF &&
refs/heads/master
refs/heads/side
refs/odd/spot
@ -99,7 +98,7 @@ test_expect_success '%(color) must fail' '
'
test_expect_success 'left alignment is default' '
test_prepare_expect >expect <<-\EOF &&
cat >expect <<-\EOF &&
refname is refs/heads/master |refs/heads/master
refname is refs/heads/side |refs/heads/side
refname is refs/odd/spot |refs/odd/spot
@ -117,7 +116,7 @@ test_expect_success 'left alignment is default' '
'
test_expect_success 'middle alignment' '
test_prepare_expect >expect <<-\EOF &&
cat >expect <<-\EOF &&
| refname is refs/heads/master |refs/heads/master
| refname is refs/heads/side |refs/heads/side
| refname is refs/odd/spot |refs/odd/spot
@ -135,7 +134,7 @@ test_expect_success 'middle alignment' '
'
test_expect_success 'right alignment' '
test_prepare_expect >expect <<-\EOF &&
cat >expect <<-\EOF &&
| refname is refs/heads/master|refs/heads/master
| refname is refs/heads/side|refs/heads/side
| refname is refs/odd/spot|refs/odd/spot
@ -152,7 +151,7 @@ test_expect_success 'right alignment' '
test_cmp expect actual
'
test_prepare_expect >expect <<-\EOF
cat >expect <<-\EOF
| refname is refs/heads/master |refs/heads/master
| refname is refs/heads/side |refs/heads/side
| refname is refs/odd/spot |refs/odd/spot
@ -199,7 +198,7 @@ EOF
# Individual atoms inside %(align:...) and %(end) must not be quoted.
test_expect_success 'alignment with format quote' "
test_prepare_expect >expect <<-\EOF &&
cat >expect <<-\EOF &&
|' '\''master| A U Thor'\'' '|
|' '\''side| A U Thor'\'' '|
|' '\''odd/spot| A U Thor'\'' '|
@ -217,7 +216,7 @@ test_expect_success 'alignment with format quote' "
"
test_expect_success 'nested alignment with quote formatting' "
test_prepare_expect >expect <<-\EOF &&
cat >expect <<-\EOF &&
|' master '|
|' side '|
|' odd/spot '|
@ -235,7 +234,7 @@ test_expect_success 'nested alignment with quote formatting' "
"
test_expect_success 'check `%(contents:lines=1)`' '
test_prepare_expect >expect <<-\EOF &&
cat >expect <<-\EOF &&
master |three
side |four
odd/spot |three
@ -253,7 +252,7 @@ test_expect_success 'check `%(contents:lines=1)`' '
'
test_expect_success 'check `%(contents:lines=0)`' '
test_prepare_expect >expect <<-\EOF &&
cat >expect <<-\EOF &&
master |
side |
odd/spot |
@ -271,7 +270,7 @@ test_expect_success 'check `%(contents:lines=0)`' '
'
test_expect_success 'check `%(contents:lines=99999)`' '
test_prepare_expect >expect <<-\EOF &&
cat >expect <<-\EOF &&
master |three
side |four
odd/spot |three