On Sunday, July 14, 2024 3:06 Am, Peff wrote: >To: Junio C Hamano <gitster@xxxxxxxxx> >Cc: rsbecker@xxxxxxxxxxxxx; git@xxxxxxxxxxxxxxx >Subject: Re: [Test Breakage 2.46.0-rc0] Test t4135.06 fails on NonStop > >On Sat, Jul 13, 2024 at 07:23:25PM -0700, Junio C Hamano wrote: > >> And this hunk uses /dev/zero the same way before and after. The older >> use of /dev/zero in these tests were from 852a1710 (am: let >> command-line options override saved options, 2015-08-04), which was >> part of v2.6.0 that was tagged in late Sep 2015. >> >> In short this is nothing new in this release. > >One thing my recent patch did was remove the TTY prereq from those tests. So it's >possible that they're now being run on his platform for the first time. Good catch. That was it. From the prior CI build: *** t4153-am-resume-override-opts.sh *** ok 1 - setup ok 2 # skip --3way overrides --no-3way (missing TTY) ok 3 - --no-quiet overrides --quiet ok 4 - --signoff overrides --no-signoff ok 5 # skip --reject overrides --no-reject (missing TTY) >> Preparing a garbage file that is sufficiently large (like 1kB) and >> feeding from that file to the commands instead of from /dev/null may >> be sufficient to reduce the dependence of /dev/zero but given that >> this is ancient, there are many other uses of /dev/zero in the test >> directory, it does not seem ultra-urgent to address this, at least to >> me. Certainly not during the pre-release freeze. > >The other mentions of /dev/zero that I see are all in tests marked as EXPENSIVE, >which likewise aren't run normally. > >So I think it is plausibly a new issue for some platforms, though I agree it is not super >urgent. > >With --retry I think we would not actually read stdin at all, so we could just remove >the mention of /dev/zero entirely. But if we wanted to be sure it did not read and >choke on any input provided, I think just: > >diff --git a/t/t4153-am-resume-override-opts.sh b/t/t4153-am-resume-override- >opts.sh >index a4d0c03ca6..76783bdd67 100755 >--- a/t/t4153-am-resume-override-opts.sh >+++ b/t/t4153-am-resume-override-opts.sh >@@ -45,6 +45,7 @@ test_expect_success '--3way overrides --no-3way' ' > > # Applying side1 with am --3way will succeed due to the threeway-merge. > # Applying side2 will fail as --3way does not apply to it. >+ echo garbage | > test_must_fail git am --retry --3way && > test_path_is_dir .git/rebase-apply && > test side1 = "$(cat file2)" >@@ -99,7 +100,8 @@ test_expect_success '--reject overrides --no-reject' ' > test_path_is_dir .git/rebase-apply && > test_path_is_missing file.rej && > >- test_must_fail git am --retry --reject </dev/zero && >+ echo garbage | >+ test_must_fail git am --retry --reject && > test_path_is_dir .git/rebase-apply && > test_path_is_file file.rej > ' > >would be sufficient. And it does work properly on the box. Thanks. ok 1 - setup ok 2 - --retry fails without in-progress operation ok 3 - --3way overrides --no-3way ok 4 - --no-quiet overrides --quiet ok 5 - --signoff overrides --no-signoff ok 6 - --reject overrides --no-reject # passed all 6 test(s) 1..6 Thanks, Randall