quilt: fix intermittent failure in faildiff.test

This test assumes that if a child process writes one line to stderr and
then another line to stdout, and stderr is redirected to stdout, that
the order the lines will be read is stable.

This isn't the case and occasionally the lines will be read in a
different order.  Change the test to ignore line ordering.

[ YOCTO #14469 ]

(From OE-Core rev: 1ddbe4d2bd8d8da10dac8a054f130fcd1d242219)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2023-01-13 16:57:02 +00:00
committed by Richard Purdie
parent 61bb4d8e75
commit ca8dcdbfab
2 changed files with 29 additions and 0 deletions

View File

@@ -12,6 +12,7 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/quilt/quilt-${PV}.tar.gz \
file://test.sh \
file://0001-tests-Allow-different-output-from-mv.patch \
file://fix-grep-3.8.patch \
file://faildiff-order.patch \
"
SRC_URI:append:class-target = " file://gnu_patch_test_fix_target.patch"

View File

@@ -0,0 +1,28 @@
This test assumes that two lines that are output on different streams (stdout
and stderr) will be read in the same order, but thanks to buffering that may not
be the case.
Change the expected lines to be regexs that each match both expected lines, so
the test always works no matter the actual order the lines are read in.
Bug filed at https://savannah.nongnu.org/bugs/index.php?63651 to discuss a
proper solution.
Upstream-Status: Inappropriate
Signed-off-by: Ross Burton <ross.burton@arm.com>
diff --git a/test/faildiff.test b/test/faildiff.test
index 5afb8e3..5f32f71 100644
--- a/test/faildiff.test
+++ b/test/faildiff.test
@@ -28,8 +28,8 @@ What happens on binary files?
$ printf "\\003\\000\\001" > test.bin
$ quilt diff -pab --no-index
- >~ (Files|Binary files) a/test\.bin and b/test\.bin differ
- > Diff failed on file 'test.bin', aborting
+ >~ (.*[Ff]iles a/test\.bin and b/test\.bin differ|Diff failed on file 'test.bin', aborting)
+ >~ (.*[Ff]iles a/test\.bin and b/test\.bin differ|Diff failed on file 'test.bin', aborting)
$ echo %{?}
> 1