tests: avoid false failure with sanitizer builds

* init.cfg (sanitizer_build_): Add a helper to detect if a program
is built against a sanitizer.
* tests/df/no-mtab-status-masked-proc.sh: Skip if a sanitizer build.
This commit is contained in:
Pádraig Brady 2026-01-21 17:31:24 +00:00
parent 28c29d103e
commit f9eebda93c
2 changed files with 11 additions and 1 deletions

View File

@ -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_

View File

@ -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