summaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2012-03-25 16:51:46 +0000
committerMike Frysinger <vapier@gentoo.org>2012-03-25 16:51:46 +0000
commitbb4f55dbcc7aa2bf1b0cdd439b7088d9ea7e9b00 (patch)
treec37bed8fcd43268f944f0474770db1233ac5375a /sim
parent3ef3d2e1c985426ccac17157185a962d20952624 (diff)
downloadgdb-bb4f55dbcc7aa2bf1b0cdd439b7088d9ea7e9b00.tar.gz
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/ChangeLog6
-rw-r--r--sim/testsuite/sim/bfin/allinsn.exp28
2 files changed, 34 insertions, 0 deletions
diff --git a/sim/testsuite/sim/bfin/ChangeLog b/sim/testsuite/sim/bfin/ChangeLog
index ca634df5cc2..fa3aa11829b 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 49c868ac7ab..aa304eaa9b4 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] {