sim: bfin: skip .c/.S tests if no compiler is available
authorMike Frysinger <vapier@gentoo.org>
Sun, 25 Mar 2012 16:51:46 +0000 (16:51 +0000)
committerMike Frysinger <vapier@gentoo.org>
Sun, 25 Mar 2012 16:51:46 +0000 (16:51 +0000)
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>
sim/testsuite/sim/bfin/ChangeLog
sim/testsuite/sim/bfin/allinsn.exp

index ca634df5cc2ee90e88f61c9b7e7581b6e08dfc26..fa3aa11829b7477f43a8a705da07ae7997019bfc 100644 (file)
@@ -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,
index 49c868ac7ab8d67b29e1e786bed329f6a0fd730f..aa304eaa9b4ae2aa6a22e98cbb187b90d4e88ac0 100644 (file)
@@ -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] {