t/gpg: simplify test for unknown key
To test for a key that is completely unknown to the keyring we need one to sign the commit with. This was done by generating a new key and not add it into the keyring. To avoid the key generation overhead and problems where GPG did hang in CI during it, switch GNUPGHOME to the empty $GNUPGHOME_NOT_USED instead, therefore making all used keys unknown for this single `verify-commit` call. Reported-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Fabian Stelzer <fs@gigacodes.de> Reviewed-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Fabian Stelzer committed
Jan 12, 2022 at 13:07 UTC
0517f591ca290a14ee3e516e478e8d2b78b45822
1 file changed
+2
-20
t/t7510-signed-commit.sh
+2
-20
@@ -71,25 +71,7 @@ test_expect_success GPG 'create signed commits' '
71
git tag eleventh-signed $(cat oid) &&
72
echo 12 | git commit-tree --gpg-sign=B7227189 HEAD^{tree} >oid &&
73
test_line_count = 1 oid &&
74
- git tag twelfth-signed-alt $(cat oid) &&
75
-
76
- cat >keydetails <<-\EOF &&
77
- Key-Type: RSA
78
- Key-Length: 2048
79
- Subkey-Type: RSA
80
- Subkey-Length: 2048
81
- Name-Real: Unknown User
82
- Name-Email: unknown@git.com
83
- Expire-Date: 0
84
- %no-ask-passphrase
85
- %no-protection
86
- EOF
87
- gpg --batch --gen-key keydetails &&
88
- echo 13 >file && git commit -a -S"unknown@git.com" -m thirteenth &&
89
- git tag thirteenth-signed &&
90
- DELETE_FINGERPRINT=$(gpg -K --with-colons --fingerprint --batch unknown@git.com | grep "^fpr" | head -n 1 | awk -F ":" "{print \$10;}") &&
91
- gpg --batch --yes --delete-secret-keys $DELETE_FINGERPRINT &&
92
- gpg --batch --yes --delete-keys unknown@git.com
74
+ git tag twelfth-signed-alt $(cat oid)
75
'
76
77
test_expect_success GPG 'verify and show signatures' '
@@ -129,7 +111,7 @@ test_expect_success GPG 'verify and show signatures' '
111
'
112
113
test_expect_success GPG 'verify-commit exits failure on unknown signature' '
132
- test_must_fail git verify-commit thirteenth-signed 2>actual &&
114
+ test_must_fail env GNUPGHOME="$GNUPGHOME_NOT_USED" git verify-commit initial 2>actual &&
115
! grep "Good signature from" actual &&
116
! grep "BAD signature from" actual &&
117
grep -q -F -e "No public key" -e "public key not found" actual