mirror of
https://github.com/systemd/systemd.git
synced 2025-01-12 13:18:14 +03:00
4b252eaa31
When running TEST-22 under ASan, there's a chain of events which causes `stat` to output an extraneous ASan error message, causing following fail: ``` + test -d /tmp/d/1 ++ stat -c %U:%G:%a /tmp/d/1 ==82==ASan runtime does not come first in initial library list; you should either link runtime to your application or manually preload it with LD_PRELOAD. + test = daemon:daemon:755 .//usr/lib/systemd/tests/testdata/units/testsuite-22.02.sh: line 24: test: =: unary operator expected ``` This is caused by `stat` calling nss which in Arch's configuration calls the nss-systemd module, that pulls in libasan which causes the $LD_PRELOAD error message, since `stat` is an uninstrumented binary. The $LD_PRELOAD variable is explicitly unset for all testsuite-* services since it causes various issues when calling uninstrumented libraries, so setting it globally is not an option. Another option would be to set $LD_PRELOAD for each `stat` call, but that would unnecessarily clutter the test code.
19 lines
406 B
Bash
Executable File
19 lines
406 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
TEST_DESCRIPTION="Tmpfiles related tests"
|
|
TEST_NO_QEMU=1
|
|
. $TEST_BASE_DIR/test-functions
|
|
|
|
test_append_files() {
|
|
if [[ "$IS_BUILT_WITH_ASAN" == "yes" ]]; then
|
|
if [[ -z "$initdir" ]]; then
|
|
echo >&2 "\$initdir is not defined, can't continue"
|
|
exit 1
|
|
fi
|
|
|
|
sed -i "s/systemd//g" "$initdir/etc/nsswitch.conf"
|
|
fi
|
|
}
|
|
|
|
do_test "$@" 22
|