diff --git a/init.cfg b/init.cfg index f453279bf..9224c5df0 100644 --- a/init.cfg +++ b/init.cfg @@ -850,4 +850,11 @@ uses_strace_ () fi } +# Return true if passed program is built with ASAN, or UBSAN etc. +sanitizer_build_() +{ + env $(printf '%sSAN_OPTIONS=help=1 ' A UB L M T) "$1" --version 2>&1 | + grep '[Ss]anitizer' >/dev/null +} + sanitize_path_ diff --git a/tests/df/no-mtab-status-masked-proc.sh b/tests/df/no-mtab-status-masked-proc.sh index 11975ea20..fccf7cd78 100755 --- a/tests/df/no-mtab-status-masked-proc.sh +++ b/tests/df/no-mtab-status-masked-proc.sh @@ -22,6 +22,9 @@ print_ver_ df skip_if_root_ +# Sanitizers need to read from /proc +sanitizer_build_ df && skip_ 'Sanitizer not supported' + # Protect against inaccessible remote mounts etc. timeout 10 df || skip_ "df fails" @@ -30,7 +33,7 @@ unshare -rm true || skip_ 'User namespace sandbox is disabled' # mask /proc df() { unshare -rm $SHELL -c \ - "mount -t tmpfs tmpfs /proc && command df \"\$@\"" -- "$@"; + "mount -t tmpfs tmpfs /proc && env df \"\$@\"" -- "$@"; } df /proc || fail=1