Thanks, this is good. It also helps to use -vN option when re-sending a patch or a patchset. The header will change to [PATCH v2] ... and so on, so it's easy to see which is the latest version.
Alex On Thu, 28 May 2026 at 20:57, Aditya GS <[email protected]> wrote: > > Backport upstream fix to improve stability of randtest.sh by > retrying when sigma is too small, avoiding intermittent failures. > > https://bugzilla.yoctoproject.org/show_bug.cgi?id=16254 > > Signed-off-by: Aditya GS <[email protected]> > --- > .../gawk/files/randtest-fix.patch | 139 ++++++++++++++++++ > meta/recipes-extended/gawk/gawk_5.3.0.bb | 1 + > 2 files changed, 140 insertions(+) > create mode 100644 meta/recipes-extended/gawk/files/randtest-fix.patch > > diff --git a/meta/recipes-extended/gawk/files/randtest-fix.patch > b/meta/recipes-extended/gawk/files/randtest-fix.patch > new file mode 100644 > index 0000000000..0b813e667e > --- /dev/null > +++ b/meta/recipes-extended/gawk/files/randtest-fix.patch > @@ -0,0 +1,139 @@ > +From f2250f4bc864913437619af7a9834a1c24915acd Mon Sep 17 00:00:00 2001 > +From: "Arnold D. Robbins" <[email protected]> > +Date: Thu, 28 May 2026 09:52:41 -0400 > +Subject: [PATCH] Improve test/randtest.sh. > + > +Backport upstream fix to improve stability of randtest.sh by retrying > +when sigma is too small, avoiding intermittent failures. > + > +Upstream-Status: Backport > +[https://cgit.git.savannah.gnu.org/cgit/gawk.git/commit/?id=f2250f4bc864913437619af7a983 > + > +--- > + > +diff --git a/test/randtest.sh b/test/randtest.sh > +index 597376a8..6ae6f830 100755 > +--- a/test/randtest.sh > ++++ b/test/randtest.sh > +@@ -45,68 +45,77 @@ $AWK 'BEGIN{ > + nsamples=('$NSAMPLES'); > + max_allowed_sigma=('$MAX_ALLOWED_SIGMA'); > + nruns=('$NRUNS'); > +- for(tau=0;tau<nsamples/2;tau++) corr[tau]=0; > ++ max_retries=5 > + > +- for(run=0;run<nruns;run++) { > +- sum=0; > ++ for (retry=0; retry<max_retries; retry++) { > ++ for(tau=0; tau<nsamples/2; tau++) corr[tau]=0; > + > +- # Fill an array with a sequence of samples that are a > +- # function of pairs of rand() values. > ++ for(run=0; run<nruns; run++) { > ++ sum=0; > + > +- for(i=0;i<nsamples;i++) { > +- samp[i]=((rand()-0.5)*(rand()-0.5))^2; > +- sum=sum+samp[i]; > +- } > ++ # Fill an array with a sequence of samples that are a > ++ # function of pairs of rand() values. > + > +- # Subtract off the mean of the sequence: > ++ for(i=0; i<nsamples; i++) { > ++ samp[i]=((rand()-0.5)*(rand()-0.5))^2; > ++ sum=sum+samp[i]; > ++ } > + > +- mean=sum/nsamples; > +- for(i=0;i<nsamples;i++) samp[i]=samp[i]-mean; > ++ # Subtract off the mean of the sequence: > + > +- # Calculate an autocorrelation function on the sequence. > +- # Because the values of rand() should be independent, there > +- # should be no peaks in the autocorrelation. > ++ mean=sum/nsamples; > ++ for(i=0;i<nsamples;i++) samp[i]=samp[i]-mean; > + > +- for(tau=0;tau<nsamples/2;tau++) { > +- sum=0; > +- for(i=0;i<nsamples/2;i++) sum=sum+samp[i]*samp[i+tau]; > +- corr[tau]=corr[tau]+sum; > +- } > ++ # Calculate an autocorrelation function on the sequence. > ++ # Because the values of rand() should be independent, there > ++ # should be no peaks in the autocorrelation. > + > +- } > +- # Normalize the autocorrelation to the tau=0 value. > ++ for(tau=0; tau<nsamples/2; tau++) { > ++ sum=0; > ++ for(i=0;i<nsamples/2;i++) sum=sum+samp[i]*samp[i+tau]; > ++ corr[tau]=corr[tau]+sum; > ++ } > + > +- max_corr=corr[0]; > +- for(tau=0;tau<nsamples/2;tau++) corr[tau]=corr[tau]/max_corr; > ++ } > ++ # Normalize the autocorrelation to the tau=0 value. > + > +- # OPTIONALLY Print out the autocorrelation values: > ++ max_corr=corr[0]; > ++ for(tau=0;tau<nsamples/2;tau++) corr[tau]=corr[tau]/max_corr; > + > +- # for(tau=0;tau<nsamples/2;tau++) print tau, corr[tau] > > "pairpower_corr.data"; > ++ # OPTIONALLY Print out the autocorrelation values: > + > +- # Calculate the sigma for the non-zero tau values: > ++ # for(tau=0;tau<nsamples/2;tau++) print tau, corr[tau] > > "pairpower_corr.data"; > + > +- power_sum=0; > ++ # Calculate the sigma for the non-zero tau values: > + > +- for(tau=1;tau<nsamples/2;tau++) power_sum=power_sum+(corr[tau])^2; > ++ power_sum=0; > + > +- sigma=sqrt(power_sum/(nsamples/2-1)); > ++ for(tau=1;tau<nsamples/2;tau++) power_sum=power_sum+(corr[tau])^2; > + > +- # See if any of the correlations exceed a reasonable number of sigma: > ++ sigma=sqrt(power_sum/(nsamples/2-1)); > + > +- passed=1; > +- for(tau=1;tau<nsamples/2;tau++) { > +- if ( abs(corr[tau])/sigma > max_allowed_sigma ) { > +- print "Tau=", tau ", Autocorr=", corr[tau]/sigma, "sigma"; > +- passed=0; > +- } > ++ if (sigma < 1e-6) { > ++ print "Sigma too small, retrying run", retry > ++ continue > + } > +- if(!passed) { > +- print "Test failed." > +- exit(1); > ++ > ++ # See if any of the correlations exceed a reasonable number of > sigma: > ++ > ++ for(tau=1;tau<nsamples/2;tau++) { > ++ if (abs(corr[tau])/sigma > max_allowed_sigma) { > ++ print "Tau=", tau ", Autocorr=", corr[tau]/sigma, "sigma"; > ++ print "Test failed." > ++ exit 1 > ++ } > + } > +- else exit (0); > ++ > ++ exit 0 > + } > + > ++ print "Test failed after retries due to unstable sigma" > ++ exit 1 > ++} > ++ > + function abs(abs_input) { return(sqrt(abs_input^2)) ; } > + ' > + > +-- > +2.34.1 > + > diff --git a/meta/recipes-extended/gawk/gawk_5.3.0.bb > b/meta/recipes-extended/gawk/gawk_5.3.0.bb > index ac9d8500d6..06184a4b48 100644 > --- a/meta/recipes-extended/gawk/gawk_5.3.0.bb > +++ b/meta/recipes-extended/gawk/gawk_5.3.0.bb > @@ -18,6 +18,7 @@ PACKAGECONFIG[mpfr] = "--with-mpfr,--without-mpfr, mpfr" > SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \ > file://0001-m4-readline-add-missing-includes.patch \ > file://run-ptest \ > + file://randtest-fix.patch \ > " > > SRC_URI[sha256sum] = > "378f8864ec21cfceaa048f7e1869ac9b4597b449087caf1eb55e440d30273336" > -- > 2.34.1 >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#237723): https://lists.openembedded.org/g/openembedded-core/message/237723 Mute This Topic: https://lists.openembedded.org/mt/119535145/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
