tests: run tests for each supported personality

When strace supports more than one personality, run test suite
for each personality supported by the host system.

* bootstrap: Create tests-m32 and tests-mx32 subtrees from tests.
* configure.ac: Check for -m32 and -mx32 runtime support.
(AC_CONFIG_FILES): Add tests-m32/Makefile and tests-mx32/Makefile.
* Makefile.am [HAVE_M32_RUNTIME] (TESTS_M32): Define.
[HAVE_MX32_RUNTIME] (TESTS_MX32): Define.
(SUBDIRS): Add $(TESTS_M32) $(TESTS_MX32).
* .gitignore: Add /tests-m32 and /tests-mx32.
This commit is contained in:
Дмитрий Левин 2015-01-23 22:45:02 +00:00
parent 05884d866c
commit 679c47c348
4 changed files with 55 additions and 6 deletions

7
.gitignore vendored
View File

@ -29,13 +29,14 @@ Makefile.in
/stamp-h1
/*.gdb
/ioctls.h
/ioctldefs.h
/ioctlsort
/strace
/test-driver
/ioctlent[012].h
/ioctls_all[012].h
/ioctlsort[012]
/strace-*.tar.xz
/tests-m32
/tests-mx32

View File

@ -1,6 +1,12 @@
# Automake input for strace.
SUBDIRS = tests
if HAVE_M32_RUNTIME
TESTS_M32 = tests-m32
endif
if HAVE_MX32_RUNTIME
TESTS_MX32 = tests-mx32
endif
SUBDIRS = tests $(TESTS_M32) $(TESTS_MX32)
bin_PROGRAMS = strace
man_MANS = strace.1

View File

@ -1,3 +1,17 @@
#!/bin/sh
#!/bin/sh -eu
for m in -m32 -mx32; do
mkdir tests$m ||
continue
sed "s/^AM_CFLAGS[[:space:]]*=.*/& $m/" \
tests/Makefile.am > tests$m/Makefile.am
for f in tests/*; do
[ "${f##*/}" != Makefile.am ] ||
continue
ln -s ../"$f" tests$m/
done
done
./xlat/gen.sh
exec autoreconf -f -i "$@"

View File

@ -816,5 +816,33 @@ if test "$arch" = mips && test "$no_create" != yes; then
fi
fi
AC_CONFIG_FILES([Makefile tests/Makefile])
have_m32=no
case "$arch" in
aarch64|powerpc64|sparc64|tile|x32|x86_64)
AC_MSG_CHECKING([for -m32 runtime support])
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -m32"
AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(){return 0;}]])],
[have_m32=yes],[have_m32=no],[have_m32=no])
CFLAGS="$saved_CFLAGS"
AC_MSG_RESULT($have_m32)
;;
esac
AM_CONDITIONAL([HAVE_M32_RUNTIME], [test "$have_m32" = yes])
have_mx32=no
case "$arch" in
x86_64)
AC_MSG_CHECKING([for -mx32 runtime support])
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -mx32"
AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(){return 0;}]])],
[have_mx32=yes],[have_mx32=no],[have_mx32=no])
CFLAGS="$saved_CFLAGS"
AC_MSG_RESULT($have_mx32)
;;
esac
AM_CONDITIONAL([HAVE_MX32_RUNTIME], [test "$have_mx32" = yes])
AC_CONFIG_FILES([Makefile tests/Makefile tests-m32/Makefile tests-mx32/Makefile])
AC_OUTPUT