diff options
author | Mike Frysinger <vapier@gentoo.org> | 2012-03-25 16:51:46 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2012-03-25 16:51:46 +0000 |
commit | 44ac5dbe328a18883323db9bc5adec0a8da7c665 (patch) | |
tree | 1dd805645a379a23782a7aa5281444f13dcf7908 /sim | |
parent | 5b43fab2ead94d2437e1c056dca1deaff05ebd54 (diff) | |
download | fsf-binutils-gdb-44ac5dbe328a18883323db9bc5adec0a8da7c665.zip fsf-binutils-gdb-44ac5dbe328a18883323db9bc5adec0a8da7c665.tar.gz fsf-binutils-gdb-44ac5dbe328a18883323db9bc5adec0a8da7c665.tar.bz2 |
sim: bfin: skip .c/.S tests if no compiler is available
Similar to logic in the cris exp, attempt a simple compile and if it fails
(presumably due to the compiler being broken), skip all the related tests.
Fortunately, most tests (~600 out of ~800) are pure assembly, so people should
still get pretty good coverage.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'sim')
-rw-r--r-- | sim/testsuite/sim/bfin/ChangeLog | 6 | ||||
-rw-r--r-- | sim/testsuite/sim/bfin/allinsn.exp | 28 |
2 files changed, 34 insertions, 0 deletions
diff --git a/sim/testsuite/sim/bfin/ChangeLog b/sim/testsuite/sim/bfin/ChangeLog index ca634df..fa3aa11 100644 --- a/sim/testsuite/sim/bfin/ChangeLog +++ b/sim/testsuite/sim/bfin/ChangeLog @@ -8,6 +8,12 @@ * fact.s: Comment out test with too large a number (6227020800). + * allinsn.exp: If preprocessing usp.S fails, set has_cpp to 0, + else set it to 1. If compiling argc.c fails, set has_cc to 0, + else set it to 1. When processing each src file, if has_ccp is + 0 and the file ends in .S, skip it; if it has_cc is 0 and the + file ends in .c, skip it. + 2012-03-19 Mike Frysinger <vapier@gentoo.org> * se_all64bitg0opcodes.S, se_all64bitg1opcodes.S, diff --git a/sim/testsuite/sim/bfin/allinsn.exp b/sim/testsuite/sim/bfin/allinsn.exp index 49c868a..aa304ea 100644 --- a/sim/testsuite/sim/bfin/allinsn.exp +++ b/sim/testsuite/sim/bfin/allinsn.exp @@ -4,7 +4,35 @@ if [istarget bfin-*-elf] { # all machines set all_machs "bfin" + # See if we have a preprocessor available. + if { [target_compile $srcdir/$subdir/usp.S compilercheck.x "preprocess" \ + [list "incdir=$srcdir/$subdir"]] == "" } { + set has_cpp 1 + } { + verbose -log "Can't execute preprocessor" + set has_cpp 0 + } + + # See if we have a compiler available. + if { [target_compile $srcdir/$subdir/argc.c compilercheck.x "executable" \ + [list "incdir=$srcdir/$subdir" "additional_flags=-msim"]] == "" } { + set has_cc 1 + } { + verbose -log "Can't execute C compiler" + set has_cc 0 + } + foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.\[csS\]]] { + # If we don't have a compiler available, skip tests :(. + if { $has_cpp == 0 && [string match "*.S" $src] } { + untested $src + continue + } + if { $has_cc == 0 && [string match "*.c" $src] } { + untested $src + continue + } + # If we're only testing specific files and this isn't one of them, # skip it. if ![runtest_file_p $runtests $src] { |