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: 2c9fe8c3bb1cc1883c7bd445d019b2107e85ab2b)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1ddbe4d2bd8d8da10dac8a054f130fcd1d242219)
Signed-off-by: Steve Sakoman <steve@sakoman.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 e22da98e79
commit 1d3f2be1e6
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://Makefile \
file://test.sh \
file://0001-tests-Allow-different-output-from-mv.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