forked from pool/coreutils
Marcus Meissner
e2335081f8
- coreutils-tests-aarch64-env.patch: Add patch to avoid false positive failures of the coreutils-testsuite on OBS/aarch64: work around execve() reversing the order of "env" output. OBS-URL: https://build.opensuse.org/request/show/289952 OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=248
46 lines
1.9 KiB
Diff
46 lines
1.9 KiB
Diff
Upstream patch on top of v8.23; to be removed in v8.24.
|
|
Avoid a false positive failure of the coreutils-testsuite.
|
|
http://git.sv.gnu.org/cgit/coreutils.git/commit/?id=bfb4f5c8b7
|
|
|
|
Related execve() bug report:
|
|
https://bugzilla.novell.com/show_bug.cgi?id=915889
|
|
|
|
From bfb4f5c8b791fdcc3cdba87a5182fc684fa8cd24 Mon Sep 17 00:00:00 2001
|
|
From: Bernhard Voelker <mail@bernhard-voelker.de>
|
|
Date: Tue, 3 Feb 2015 01:52:04 +0100
|
|
Subject: [PATCH] tests: avoid a FP on aarch64 when comparing env/printenv
|
|
output
|
|
|
|
The following test fails on aarch64 on openSUSE's OpenBuildService
|
|
due to glibc's execvp reversing the pointers of 'environ', i.e.,
|
|
the output of "env|tac" equals "env env" on that platform.
|
|
|
|
* tests/misc/printenv.sh: Use 'env env' to work around the behavior
|
|
on that platform.
|
|
While at it, fix the grep pattern which suppressed all environment
|
|
variables starting with an underscore "_" instead of "$_" (and
|
|
"$LD_PRELOAD") only.
|
|
---
|
|
tests/misc/printenv.sh | 8 ++++++--
|
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
|
|
|
Index: tests/misc/printenv.sh
|
|
===================================================================
|
|
--- tests/misc/printenv.sh.orig
|
|
+++ tests/misc/printenv.sh
|
|
@@ -23,8 +23,12 @@ print_ver_ printenv
|
|
# printenv as a builtin, so we must invoke it via "env".
|
|
# But beware of $_, set by many shells to the last command run.
|
|
# Also, filter out LD_PRELOAD, which is set when running under valgrind.
|
|
-env | grep -Ev '^(_|LD_PRELOAD=)' > exp || framework_failure_
|
|
-env -- printenv | grep -Ev '^(_|LD_PRELOAD=)' > out || fail=1
|
|
+# Note the apparently redundant "env env": this is to ensure to get
|
|
+# env's output the same way as that of printenv and works around a bug
|
|
+# on aarch64 at least where libc's execvp reverses the order of the
|
|
+# output.
|
|
+env -- env | grep -Ev '^(_|LD_PRELOAD)=' > exp || framework_failure_
|
|
+env -- printenv | grep -Ev '^(_|LD_PRELOAD)=' > out || fail=1
|
|
compare exp out || fail=1
|
|
|
|
# POSIX is clear that environ may, but need not be, sorted.
|