# [PATCH] t7004: check a missing key without deleting gpghome

2 messages from 2026-10-08 to 2026-10-08. Participants: Harald Nordgren via GitGitGadget, Junio C Hamano.
Thread: https://gitlist.dev/t/66488

## Harald Nordgren via GitGitGadget, 2026-10-08 09:07

Subject: [PATCH] t7004: check a missing key without deleting gpghome
Message-ID: <pull.2443.git.git.1791450465178.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/pull.2443.git.git.1791450465178.gitgitgadget%40gmail.com

```
From: Harald Nordgren <haraldnordgren@gmail.com>

The "verify signed tag fails when public key is not present" test
deletes gpghome to lose the key, and this sometimes fails on Alpine
with

    rm: can't remove 'gpghome/S.gpg-agent.extra': No such file or directory

Point GNUPGHOME at an unused directory for the verification, which is
how t7510 checks a signature whose key is unknown.

Signed-off-by: Harald Nordgren <haraldnordgren@gmail.com>
---
    t7004: check a missing key without deleting gpghome
    
    Fix flaky test by checking missing key without deleting gpghome.

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2443%2FHaraldNordgren%2Fflaky-gpg-http2-tests-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2443/HaraldNordgren/flaky-gpg-http2-tests-v1
Pull-Request: https://github.com/git/git/pull/2443

 t/t7004-tag.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh
index 8c795d7218..a0c2c9a3a1 100755
--- a/t/t7004-tag.sh
+++ b/t/t7004-tag.sh
@@ -11,6 +11,7 @@ GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
 export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
 
 . ./test-lib.sh
+GNUPGHOME_NOT_USED=$GNUPGHOME
 . "$TEST_DIRECTORY"/lib-gpg.sh
 . "$TEST_DIRECTORY"/lib-terminal.sh
 
@@ -1525,8 +1526,7 @@ test_expect_success GPGSM 'git tag -s fails if gpgsm is misconfigured (bad signa
 # try to verify without gpg:
 
 test_expect_success GPG 'verify signed tag fails when public key is not present' '
-	rm -rf gpghome &&
-	test_must_fail git tag -v signed-tag
+	test_must_fail env GNUPGHOME="$GNUPGHOME_NOT_USED" git tag -v signed-tag
 '
 
 test_expect_success 'git tag -a fails if tag annotation is empty' '

base-commit: 6de20f6092dcf9bdb1c8efe03db4b70c82b423dd
-- 
gitgitgadget


```

## Junio C Hamano, 2026-10-08 19:40

Subject: Re: [PATCH] t7004: check a missing key without deleting gpghome
Message-ID: <xmqqpkxkyo90.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqqpkxkyo90.fsf%40gitster.g
In-Reply-To: <pull.2443.git.git.1791450465178.gitgitgadget@gmail.com>

```
"Harald Nordgren via GitGitGadget" <gitgitgadget@gmail.com> writes:

> From: Harald Nordgren <haraldnordgren@gmail.com>
>
> The "verify signed tag fails when public key is not present" test
> deletes gpghome to lose the key, and this sometimes fails on Alpine
> with
>
>     rm: can't remove 'gpghome/S.gpg-agent.extra': No such file or directory
>
> Point GNUPGHOME at an unused directory for the verification, which is
> how t7510 checks a signature whose key is unknown.
>
> Signed-off-by: Harald Nordgren <haraldnordgren@gmail.com>
> ---

Interesting.  It is curious why removal "sometimes" fails but it
is coming from clean-up the gpg-agent tries to do, probably.

In any case, it is a very good idea to borrow solution from an
existing test.  Nicely done.

Will queue.  Thanks.

>     t7004: check a missing key without deleting gpghome
>     
>     Fix flaky test by checking missing key without deleting gpghome.
>
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2443%2FHaraldNordgren%2Fflaky-gpg-http2-tests-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2443/HaraldNordgren/flaky-gpg-http2-tests-v1
> Pull-Request: https://github.com/git/git/pull/2443
>
>  t/t7004-tag.sh | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh
> index 8c795d7218..a0c2c9a3a1 100755
> --- a/t/t7004-tag.sh
> +++ b/t/t7004-tag.sh
> @@ -11,6 +11,7 @@ GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
>  export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
>  
>  . ./test-lib.sh
> +GNUPGHOME_NOT_USED=$GNUPGHOME
>  . "$TEST_DIRECTORY"/lib-gpg.sh
>  . "$TEST_DIRECTORY"/lib-terminal.sh
>  
> @@ -1525,8 +1526,7 @@ test_expect_success GPGSM 'git tag -s fails if gpgsm is misconfigured (bad signa
>  # try to verify without gpg:
>  
>  test_expect_success GPG 'verify signed tag fails when public key is not present' '
> -	rm -rf gpghome &&
> -	test_must_fail git tag -v signed-tag
> +	test_must_fail env GNUPGHOME="$GNUPGHOME_NOT_USED" git tag -v signed-tag
>  '
>  
>  test_expect_success 'git tag -a fails if tag annotation is empty' '
>
> base-commit: 6de20f6092dcf9bdb1c8efe03db4b70c82b423dd


```
