[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] tests: avoid false failures with LD_PRELOAD=libasan.so.2
From: |
Pádraig Brady |
Subject: |
[PATCH] tests: avoid false failures with LD_PRELOAD=libasan.so.2 |
Date: |
Thu, 25 Jun 2015 13:33:32 +0100 |
The LD_PRELOAD checks by -fsanitize=address are overly strict:
https://groups.google.com/forum/#!topic/address-sanitizer/jEvOJgkDqQk
A workaround is to first export LD_PRELOAD=libasan.so.2
The tests below are adjusted so that workaround is not discarded.
* tests/cp/nfs-removal-race.sh: Append to $LD_PRELOAD.
* tests/cp/no-ctx.sh: Likewise.
* tests/df/no-mtab-status.sh: Likewise.
* tests/df/skip-duplicates.sh: Likewise.
* tests/ls/getxattr-speedup.sh: Likewise.
* tests/rm/r-root.sh: Likewise.
---
tests/cp/nfs-removal-race.sh | 2 +-
tests/cp/no-ctx.sh | 6 +++---
tests/df/no-mtab-status.sh | 2 +-
tests/df/skip-duplicates.sh | 10 +++++-----
tests/ls/getxattr-speedup.sh | 2 +-
tests/rm/r-root.sh | 2 +-
6 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/tests/cp/nfs-removal-race.sh b/tests/cp/nfs-removal-race.sh
index 70276a3..cb34025 100755
--- a/tests/cp/nfs-removal-race.sh
+++ b/tests/cp/nfs-removal-race.sh
@@ -65,7 +65,7 @@ touch d2 || framework_failure_
echo xyz > src || framework_failure_
# Finally, run the test:
-LD_PRELOAD=./k.so cp src d || fail=1
+LD_PRELOAD=$LD_PRELOAD:./k.so cp src d || fail=1
compare src d || fail=1
Exit $fail
diff --git a/tests/cp/no-ctx.sh b/tests/cp/no-ctx.sh
index 377d203..852b8e6 100755
--- a/tests/cp/no-ctx.sh
+++ b/tests/cp/no-ctx.sh
@@ -50,14 +50,14 @@ gcc_shared_ k.c k.so \
touch file_src
# New file with SELinux context optionally included
-LD_PRELOAD=./k.so cp -a file_src file_dst || fail=1
+LD_PRELOAD=$LD_PRELOAD:./k.so cp -a file_src file_dst || fail=1
# Existing file with SELinux context optionally included
-LD_PRELOAD=./k.so cp -a file_src file_dst || fail=1
+LD_PRELOAD=$LD_PRELOAD:./k.so cp -a file_src file_dst || fail=1
# ENODATA should give an immediate error when required to preserve ctx
# This is debatable, and maybe we should not fail when no context available?
-( export LD_PRELOAD=./k.so
+( export LD_PRELOAD=$LD_PRELOAD:./k.so
returns_ 1 cp --preserve=context file_src file_dst ) || fail=1
test -e preloaded || skip_ 'LD_PRELOAD interception failed'
diff --git a/tests/df/no-mtab-status.sh b/tests/df/no-mtab-status.sh
index 41d1b52..c35da6b 100755
--- a/tests/df/no-mtab-status.sh
+++ b/tests/df/no-mtab-status.sh
@@ -90,7 +90,7 @@ gcc_shared_ k.c k.so \
cleanup_() { unset LD_PRELOAD; }
-export LD_PRELOAD=./k.so
+export LD_PRELOAD=$LD_PRELOAD:./k.so
# Test if LD_PRELOAD works:
df 2>/dev/null
diff --git a/tests/df/skip-duplicates.sh b/tests/df/skip-duplicates.sh
index c137876..4069604 100755
--- a/tests/df/skip-duplicates.sh
+++ b/tests/df/skip-duplicates.sh
@@ -146,23 +146,23 @@ gcc_shared_ k.c k.so \
|| framework_failure_ 'failed to build shared library'
# Test if LD_PRELOAD works:
-LD_PRELOAD=./k.so df
+LD_PRELOAD=$LD_PRELOAD:./k.so df
test -f x || skip_ "internal test failure: maybe LD_PRELOAD doesn't work?"
# The fake mtab file should only contain entries
# having the same device number; thus the output should
# consist of a header and unique entries.
-LD_PRELOAD=./k.so df -T >out || fail=1
+LD_PRELOAD=$LD_PRELOAD:./k.so df -T >out || fail=1
test $(wc -l <out) -eq $(expr 1 + $unique_entries) || { fail=1; cat out; }
# With --total we should suppress the duplicate but separate remote file system
-LD_PRELOAD=./k.so df --total >out || fail=1
+LD_PRELOAD=$LD_PRELOAD:./k.so df --total >out || fail=1
test "$CU_REMOTE_FS" && elide_remote=1 || elide_remote=0
test $(wc -l <out) -eq $(expr 2 + $unique_entries - $elide_remote) ||
{ fail=1; cat out; }
# Ensure we don't fail when unable to stat (currently) unavailable entries
-LD_PRELOAD=./k.so CU_TEST_DUPE_INVALID=1 df -T >out || fail=1
+LD_PRELOAD=$LD_PRELOAD:./k.so CU_TEST_DUPE_INVALID=1 df -T >out || fail=1
test $(wc -l <out) -eq $(expr 1 + $unique_entries) || { fail=1; cat out; }
# df should also prefer "/fsname" over "fsname"
@@ -176,7 +176,7 @@ fi
test $(grep -c 'virtfs2.*t2' <out) -eq 1 || { fail=1; cat out; }
# Ensure that filtering duplicates does not affect -a processing.
-LD_PRELOAD=./k.so df -a >out || fail=1
+LD_PRELOAD=$LD_PRELOAD:./k.so df -a >out || fail=1
total_fs=6; test "$CU_REMOTE_FS" && total_fs=$(expr $total_fs + 3)
test $(wc -l <out) -eq $total_fs || { fail=1; cat out; }
# Ensure placeholder "-" values used for the eclipsed "virtfs"
diff --git a/tests/ls/getxattr-speedup.sh b/tests/ls/getxattr-speedup.sh
index f84c9da..be43c50 100755
--- a/tests/ls/getxattr-speedup.sh
+++ b/tests/ls/getxattr-speedup.sh
@@ -55,7 +55,7 @@ gcc_shared_ k.c k.so \
seq 20 | xargs touch || framework_failure_
# Finally, run the test:
-LD_PRELOAD=./k.so ls --color=always -l . || fail=1
+LD_PRELOAD=$LD_PRELOAD:./k.so ls --color=always -l . || fail=1
test -f x || skip_ "internal test failure: maybe LD_PRELOAD doesn't work?"
diff --git a/tests/rm/r-root.sh b/tests/rm/r-root.sh
index 74d1a2a..c06332a 100755
--- a/tests/rm/r-root.sh
+++ b/tests/rm/r-root.sh
@@ -89,7 +89,7 @@ exercise_rm_r_root ()
fi
timeout --signal=KILL 2 \
- env LD_PRELOAD=./k.so $skip_exit \
+ env LD_PRELOAD=$LD_PRELOAD:./k.so $skip_exit \
rm -rv --one-file-system "$@" > out 2> err
return $?
--
2.4.1
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] tests: avoid false failures with LD_PRELOAD=libasan.so.2,
Pádraig Brady <=