Re: [PATCH 0/2] t/lib-gpg: ensure GNUPGHOME is created as needed
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 27, 2025, 17:38 UTC
- Message-ID
- <xmqqqzuoi6sg.fsf@gitster.g>
- In-Reply-To
- <87zf9c8glu.fsf@email.froward.int.ebiederm.org>
"Eric W. Biederman" <ebiederm@xmission.com> writes:
Show 11 quoted lines
>> I am tempted to do this in the meantime, but I'd really prefer not >> to have to do so, assuming that these tests, when fixed, would be >> materially contributing to the health of our codebase. > > I just dug into this a little and hopefully I have paged enough > state back to understand this. > > In my testing a missing GNUPGHOME appears enough to prevent the > prerequisite from succeeding. So let's fix that. Todd Zullinger's sent > some nice patches to do that (up-thread), or you can take use my minimal > version.
Sorry, but I am confused. The above "tempted to do this" was meant to come on top of Todd's patches. IOW, I was seeing flakyness with Todd's patches that fixed the missing GNUPGHOME.
> The only possible source of flakiness in the tests I can see is the
> possibility of t/t1016/gpg not getting called (which uses a fixed
> timestamp). It appears you just fixed that problem in commit
> 516bf45749bb ("t1016: make sure to use specified GPG").I think that one also is in 'seen', and yet we saw t1016 flaky X-<.
Let me isolate the relevant topics and test them again, i.e.
$ git checkout --detach v2.51.0
$ git merge --no-ff jc/t1016-setup-fix ;# 516bf45749
$ git merge --no-ff tz/test-prepare-gnupghome~1 ;# 6cd8369ef3
$ git log --no-merges --oneline v2.51.0..
516bf45749 (jc/t1016-setup-fix) t1016: make sure to use specified GPG
6cd8369ef3 t/lib-gpg: call prepare_gnupghome() in GPG2 prereq
a35952b493 t/lib-gpg: add prepare_gnupghome() to create GNUPGHOME dir
$ make
$ cd t && ./t1016-*.sh --stress
FAIL 10.1
FAIL 5.1
FAIL 34.1
...
++ eval 'diff -u' '"$@"'
+++ diff -u signedcommit3_sha1 signedcommit3_sha1_expected
--- signedcommit3_sha1 2025-10-27 17:34:58.237496945 +0000
+++ signedcommit3_sha1_expected 2025-10-27 17:34:58.145497051 +0000
@@ -1 +1 @@
-de9cabc2419f97eb665452c198ed93e890a7ef87
+c87cd5157461a81b60ef6d3c47562c12b328ef54
error: last command exited with $?=1
not ok 163 - Verify commit signedcommit3's sha1 oid
#
# git --git-dir=repo-sha256/.git rev-parse --output-object-format=sha1 ${sha256_oid} >${name}_sha1 &&
# test_cmp ${name}_sha1 ${name}_sha1_expected
#
1..163> With that commit reverted I can reproduce the flakiness locally > by just running the test manually a few times.
The above is with all three patches mentioned. FWIW, "gpg --version | head -2" says
gpg (GnuPG) 2.4.8
libgcrypt 1.11.2Hmmmm.....
Show 21 quoted lines
> I believe I used the GPG2 prereq because I don't have the older version
> of GPG to test with. So I don't know if t1016 would work on the older
> version of GPG or not.
>
>
> diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh
> index 937b876bd052..c4bbedfe081e 100644
> --- a/t/lib-gpg.sh
> +++ b/t/lib-gpg.sh
> @@ -62,6 +62,8 @@ test_lazy_prereq GPG2 '
> exit 1
> ;;
> *)
> + mkdir "$GNUPGHOME" &&
> + chmod 0700 "$GNUPGHOME" &&
> (gpgconf --kill all || : ) &&
> gpg --homedir "${GNUPGHOME}" --import \
> "$TEST_DIRECTORY"/lib-gpg/keyring.gpg &&
>
>
> Eric