> I think in general we prefer "test_cmp expected actual" over "test_cmp > actual expected". I think it's easier to understand what happened with > the former. > > Also most of the tests in t6300 are like "test_cmp expected actual": > > $ grep -c 'test_cmp expect' t6300-for-each-ref.sh > 67 > $ grep -c 'test_cmp actual' t6300-for-each-ref.sh > 1 > > > > 1870 + test 2 -ne 2 > > > 1871 + eval diff -u "$@" > > > 1872 + diff -u actual expected > > > 1873 --- actual 2023-01-08 19:40:42.169214115 +0000 > > > 1874 +++ expected 2023-01-08 19:40:42.121213837 +0000 > > > 1875 @@ -1,4 +1,5 @@ > > > 1876 gpg: Signature made Sun Jan 8 19:40:42 2023 UTC > > > 1877 gpg: using DSA key 13B6F51ECDDE430D > > > 1878 +gpg: checking the trustdb > > The + before "gpg" means that the above line is in what we expect, but > not in what we actually get. > > I think the reason might be that gpg's output could have changed > between different versions of gpg and it might just not be possible > and wise to rely on the exact output it emits. > > In both t7510-signed-commit.sh t7528-signed-commit-ssh.sh for example, > we don't test the '%GG' format, and that might be the reason why. > > So I see the following possibilities to overcome this issue: > > - just drop the test you added for the %(signature) format > - find a way to require a specific version of gpg for that test > (unfortunately I don't think our test framework allows that, so you > would have to add custom code to the test, and this is likely to > bitrot as time passes and the required gpg version becomes unused) > - find a way to make the test independent of the gpg version (this > might bitrot too as new gpg versions might further change their > output) >From your suggestions, I will consider removing it for now On Mon, Jan 9, 2023 at 4:22 AM Christian Couder <christian.couder@xxxxxxxxx> wrote: > > On Mon, Jan 9, 2023 at 5:40 AM NSENGIYUMVA WILBERFORCE > <nsengiyumvawilberforce@xxxxxxxxx> wrote: > > > Thanks, I missed the GPG flag. Now I get the following after forcing > > the push. I have been looking for the problem but I can't figure it > > out. I will be glad for any help > > > > > > git checkout -b signed && > > > 1840 echo 1 >file && git add file && > > > 1841 test_tick && git commit -S -m initial && > > > 1842 git verify-commit signed 2>out && > > > 1843 head -3 out >expected && > > > 1844 tail -1 out >>expected && > > > 1845 echo >>expected && > > > 1846 git for-each-ref refs/heads/signed --format="%(signature)" >actual && > > > 1847 test_cmp actual expected > > > 1848 > > > 1849 + git checkout -b signed > > > 1850 Switched to a new branch 'signed' > > > 1851 + echo 1 > > > 1852 + git add file > > > 1853 + test_tick > > > 1854 + test -z set > > > 1855 + test_tick=1112912113 > > > 1856 + GIT_COMMITTER_DATE=1112912113 -0700 > > > 1857 + GIT_AUTHOR_DATE=1112912113 -0700 > > > 1858 + export GIT_COMMITTER_DATE GIT_AUTHOR_DATE > > > 1859 + git commit -S -m initial > > > 1860 [signed 4dc4b90] initial > > > 1861 Author: A U Thor <author@xxxxxxxxxxx> > > > 1862 1 file changed, 1 insertion(+) > > > 1863 create mode 100644 file > > > 1864 + git verify-commit signed > > > 1865 + head -3 out > > > 1866 + tail -1 out > > > 1867 + echo > > > 1868 + git for-each-ref refs/heads/signed --format=%(signature) > > > 1869 + test_cmp actual expected > > I think in general we prefer "test_cmp expected actual" over "test_cmp > actual expected". I think it's easier to understand what happened with > the former. > > Also most of the tests in t6300 are like "test_cmp expected actual": > > $ grep -c 'test_cmp expect' t6300-for-each-ref.sh > 67 > $ grep -c 'test_cmp actual' t6300-for-each-ref.sh > 1 > > > > 1870 + test 2 -ne 2 > > > 1871 + eval diff -u "$@" > > > 1872 + diff -u actual expected > > > 1873 --- actual 2023-01-08 19:40:42.169214115 +0000 > > > 1874 +++ expected 2023-01-08 19:40:42.121213837 +0000 > > > 1875 @@ -1,4 +1,5 @@ > > > 1876 gpg: Signature made Sun Jan 8 19:40:42 2023 UTC > > > 1877 gpg: using DSA key 13B6F51ECDDE430D > > > 1878 +gpg: checking the trustdb > > The + before "gpg" means that the above line is in what we expect, but > not in what we actually get. > > I think the reason might be that gpg's output could have changed > between different versions of gpg and it might just not be possible > and wise to rely on the exact output it emits. > > In both t7510-signed-commit.sh t7528-signed-commit-ssh.sh for example, > we don't test the '%GG' format, and that might be the reason why. > > So I see the following possibilities to overcome this issue: > > - just drop the test you added for the %(signature) format > - find a way to require a specific version of gpg for that test > (unfortunately I don't think our test framework allows that, so you > would have to add custom code to the test, and this is likely to > bitrot as time passes and the required gpg version becomes unused) > - find a way to make the test independent of the gpg version (this > might bitrot too as new gpg versions might further change their > output) > > > > 1879 gpg: Good signature from "C O Mitter <committer@xxxxxxxxxxx>" > > > 1880 > > > 1881 error: last command exited with $?=1 > > > 1882 not ok 338 - test bare signature atom