From 679c47c3484a30400d32bed86c72971c85554edb Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Fri, 23 Jan 2015 22:45:02 +0000 Subject: [PATCH] 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. --- .gitignore | 7 ++++--- Makefile.am | 8 +++++++- bootstrap | 16 +++++++++++++++- configure.ac | 30 +++++++++++++++++++++++++++++- 4 files changed, 55 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 8fac8fa0..770bba78 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/Makefile.am b/Makefile.am index 83eef2e3..a00aad2a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 diff --git a/bootstrap b/bootstrap index 91d1a8fb..9624fecf 100755 --- a/bootstrap +++ b/bootstrap @@ -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 "$@" diff --git a/configure.ac b/configure.ac index 315d0783..ea55c6e6 100644 --- a/configure.ac +++ b/configure.ac @@ -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 -- 2.40.0