From c33eac51f4a8aa6a7ea77cccf6bea3f417eaff6d Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 17 Mar 2017 01:21:10 +0000 Subject: conformtest: Skip execution tests when cross-compiling. This patch makes conformtest skip execution tests when cross-compiling, as an interim step towards running most of these tests (presently disabled) in that case. It omits the (obvious) Makefile change to actually enable the conformtest tests when cross-compiling, as there are still enough failures seen with build-many-glibcs.py that I'd like to get the results cleaner before enabling these tests. Tested for x86_64, and with the tests actually enabled for cross-compilation with build-many-glibcs.py. * conform/conformtest.pl ($cross): New variable. (--cross): New command-line option. (runtest): Skip test execution when cross-compiling. * conform/Makefile (conformtest-cross): New variable. ($(conformtest-header-tests)): Pass $(conformtest-cross) to conformtest.pl. --- conform/Makefile | 8 +++++++- conform/conformtest.pl | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'conform') diff --git a/conform/Makefile b/conform/Makefile index c07cc1d8d9..eb2288f144 100644 --- a/conform/Makefile +++ b/conform/Makefile @@ -197,13 +197,19 @@ conformtest-cc-flags = -I../include $(+sysdep-includes) $(sysincludes) -I.. # in xfail[cond]- lines in test expectations. conformtest-xfail = $(if $(conformtest-xfail-conds),\ --xfail='$(conformtest-xfail-conds)') +ifeq (no,$(cross-compiling)) +conformtest-cross = +else +conformtest-cross = --cross +endif $(conformtest-header-tests): $(objpfx)%/conform.out: \ conformtest.pl $(conformtest-headers-data) (set -e; std_hdr=$*; std=$${std_hdr%%/*}; hdr=$${std_hdr#*/}; \ mkdir -p $(@D)/scratch; \ $(PERL) -I. conformtest.pl --tmpdir=$(@D)/scratch --cc='$(CC)' \ --flags='$(conformtest-cc-flags)' --standard=$$std \ - --headers=$$hdr $(conformtest-xfail) > $@); \ + --headers=$$hdr $(conformtest-xfail) $(conformtest-cross) \ + > $@); \ $(evaluate-test) $(linknamespace-symlists-tests): $(objpfx)symlist-%: list-header-symbols.pl diff --git a/conform/conformtest.pl b/conform/conformtest.pl index 41682e9b86..7594f466ed 100644 --- a/conform/conformtest.pl +++ b/conform/conformtest.pl @@ -7,10 +7,11 @@ use POSIX; $standard = "XOPEN2K8"; $CC = "gcc"; $tmpdir = "/tmp"; +$cross = ""; $xfail_str = ""; GetOptions ('headers=s' => \@headers, 'standard=s' => \$standard, 'flags=s' => \$flags, 'cc=s' => \$CC, 'tmpdir=s' => \$tmpdir, - 'xfail=s' => \$xfail_str); + 'cross' => \$cross, 'xfail=s' => \$xfail_str); @headers = split(/,/,join(',',@headers)); # List of the headers we are testing. @@ -192,6 +193,8 @@ sub runtest } note_error($xfail); $result = 1; + } elsif ($cross) { + printf (" SKIP\n"); } else { # Now run the program. If the exit code is not zero something is wrong. $result = system "$fnamebase > $fnamebase.out2 2>&1"; -- cgit v1.2.3