mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-20 02:36:16 +02:00
tests: avoid shared lib tests on unsupported platforms
* init.cfg (require_gcc_shared_): A new function to check that we can build shared libraries in the particular manner we use in our tests. * tests/cp/nfs-removal-race.sh: Use require_gcc_shared_. Then fail rather than skip, if the actual shared lib build fails. * tests/df/no-mtab-status.sh: Likewise. * tests/df/skip-duplicates.sh: Likewise. * tests/ls/getxattr-speedup.sh: Likewise. Reported in http://bugs.gnu.org/14024
This commit is contained in:
9
init.cfg
9
init.cfg
@@ -466,6 +466,15 @@ require_sparse_support_()
|
||||
fi
|
||||
}
|
||||
|
||||
# There are a myriad of ways to build shared libs,
|
||||
# so we only consider running tests requiring shared libs,
|
||||
# on platforms that support building them as follows.
|
||||
require_gcc_shared_()
|
||||
{
|
||||
$CC -shared -fPIC -O2 -xc -o d.so -ldl - < /dev/null 2>&1 \
|
||||
|| skip_ '$CC -shared ... failed to build a shared lib'
|
||||
}
|
||||
|
||||
mkfifo_or_skip_()
|
||||
{
|
||||
test $# = 1 || framework_failure_
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
|
||||
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
|
||||
print_ver_ cp
|
||||
require_gcc_shared_
|
||||
|
||||
# Replace each stat call with a call to this wrapper.
|
||||
cat > k.c <<'EOF' || framework_failure_
|
||||
@@ -58,7 +59,7 @@ EOF
|
||||
|
||||
# Then compile/link it:
|
||||
$CC -shared -fPIC -O2 k.c -o k.so -ldl \
|
||||
|| framework_failure_ 'failed to compile with -shared -fPIC'
|
||||
|| framework_failure_ 'failed to build shared library'
|
||||
|
||||
touch d2 || framework_failure_
|
||||
echo xyz > src || framework_failure_
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
|
||||
print_ver_ df
|
||||
require_gcc_shared_
|
||||
|
||||
df || skip_ "df fails"
|
||||
|
||||
@@ -45,7 +46,7 @@ EOF
|
||||
|
||||
# Then compile/link it:
|
||||
$CC -shared -fPIC -ldl -O2 k.c -o k.so \
|
||||
|| skip_ "getmntent hack does not work on this platform"
|
||||
|| framework_failure_ 'failed to build shared library'
|
||||
|
||||
# Test if LD_PRELOAD works:
|
||||
LD_PRELOAD=./k.so df
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
|
||||
print_ver_ df
|
||||
require_gcc_shared_
|
||||
|
||||
df || skip_ "df fails"
|
||||
|
||||
@@ -58,7 +59,7 @@ EOF
|
||||
|
||||
# Then compile/link it:
|
||||
gcc --std=gnu99 -shared -fPIC -ldl -O2 k.c -o k.so \
|
||||
|| skip_ "getmntent hack does not work on this platform"
|
||||
|| framework_failure_ 'failed to build shared library'
|
||||
|
||||
# Test if LD_PRELOAD works:
|
||||
LD_PRELOAD=./k.so df
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
|
||||
print_ver_ ls
|
||||
require_gcc_shared_
|
||||
|
||||
# Replace each getxattr and lgetxattr call with a call to these stubs.
|
||||
# Count those and write the total number of calls to the file "x"
|
||||
@@ -48,7 +49,7 @@ EOF
|
||||
|
||||
# Then compile/link it:
|
||||
$CC -shared -fPIC -O2 k.c -o k.so \
|
||||
|| framework_failure_ 'failed to compile with -shared -fPIC'
|
||||
|| framework_failure_ 'failed to build shared library'
|
||||
|
||||
# Create a few files:
|
||||
seq 20 | xargs touch || framework_failure_
|
||||
|
||||
Reference in New Issue
Block a user