Subject: Re: [PATCH 0/2] t/lib-gpg: ensure GNUPGHOME is created as needed

From: Todd Zullinger <[email-masked]>
Date: Fri, 28 Feb 2025 10:26:10 -0500

Hi,

I'm following up to an old thread because this test breakage
remains.

I've intended to dig into it further over the past few
months but have not managed to spend enough time to work out
the root of the problem.

I hope that someone more familiar with these tests (or
perhaps someone with fresh eyes) will spot the problem.

I wrote:
> I wrote:
>> 92 of the 202 tests in t1016-compatObjectFormat.sh are skipped due to
>> the GNUPGHOME directory missing, e.g.:
>> 
>>     ok 5 # SKIP create a sha1 signed commit (missing GPG2)
>>     ok 6 # SKIP create a sha1 signed tag (missing GPG2)
>>     ok 8 # SKIP create another sha1 signed tag (missing GPG2)
>>     ok 9 # SKIP merge the sha1 branches together (missing GPG2)
>> 
>> With these changes, they are all run (successfully). :)
>> 
>> I presume that they have been skipped in the Github CI runs as well,
>> but I don't know that the logs show enough detail to confirm that.
> 
> D'oh!  I spoke too soon.  I'd run the test suite on several
> different rpm-based hosts (Fedora 39 and Rocky 9).  Waiting
> for the Github actions to run is what I should have done.
> 
> A number of these fail, e.g.:
> 
> https://github.com/tmzullinger/git/actions/runs/9780387020/job/27001952643#step:4:1871
> 
>     Error: failed: t1016.173 Verify commit signedcommit4's sha1 oid
>     failure: t1016.173 Verify commit signedcommit4'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
>       
>       + git --git-dir=repo-sha256/.git rev-parse --output-object-format=sha1 5d70155cc40e4c16515c89ad0b11d8c691436fc4a4d3ca246669a4c21f07e454
>       + test_cmp signedcommit4_sha1 signedcommit4_sha1_expected
>       + test 2 -ne 2
>       + eval diff -u "$@"
>       + diff -u signedcommit4_sha1 signedcommit4_sha1_expected
>       --- signedcommit4_sha1	2024-07-03 15:11:05.597537579 +0000
>       +++ signedcommit4_sha1_expected	2024-07-03 15:11:05.553537766 +0000
>       @@ -1 +1 @@
>       -9179ccc5b15588bc3a45c5cc75bdec380f8ccb86
>       +c6c46f92bc2cfda57ad6bf7981fa654825376b24
>       error: last command exited with $?=1
>       not ok 173 - Verify commit signedcommit4'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
>       #	
> 
> This seems like it's just exposing a pre-existing failure,
> as I can't imagine how creating GNUPGHOME would cause the
> actual and expected SHA's to differ. :)
> 
> Perhaps the intended gpg wrapper script which sets
> `--faked-system-time` isn't being used?
> 
> I'm not sure why that would differ in the Github actions
> from my local builds, but I don't know what else differs in
> the Ubuntu images and/or environment used by the actions.

I have run a good number of builds with the patches applied
and t1016-compatObjectFormat regularly fails for all of the
tests which use the GPG2 prereq.  A recent Github CI run is
here:

    https://github.com/tmzullinger/git/actions/runs/13570544425

I think this test flakiness should be fixed so that we can
apply the patch to fix the GPG2 prereq.  As it is, we're
skipping _all_ of the tests which require GPG2.

Cheers,

-- 
Todd