* lib/gdb.exp (gdb_compile_test): New.
authorNathan Sidwell <nathan@codesourcery.com>
Tue, 10 Nov 2009 10:16:10 +0000 (10:16 +0000)
committerNathan Sidwell <nathan@codesourcery.com>
Tue, 10 Nov 2009 10:16:10 +0000 (10:16 +0000)
(skip_ada_tests, skip_java_tests): New.
(gdb_compile): Use gdb_compile_test for f77.
* lib/ada.exp (gdb_compile_ada): Use gdb_compile_test to record result.
* lib/java.exp (compile_java_from_source): Remove runtests check,
use gdb_compile_test to record result.
* gdb.ada/packed_array.exp, gdb.ada/fixed_points.exp,
gdb.ada/exec_changed.exp, gdb.ada/start.exp,
gdb.ada/watch_arg.exp, gdb.ada/null_record.exp,
gdb.ada/array_return.exp, gdb.ada/arrayidx.exp,
gdb.mi/mi-var-child-f.exp, gdb.fortran/types.exp,
gdb.fortran/array-element.exp, gdb.fortran/subarray.exp,
gdb.fortran/derived-type.exp, gdb.fortran/exprs.exp,
gdb.java/jmisc.exp, gdb.java/jmisc1.exp, gdb.java/jprint.exp,
gdb.java/jv-print.exp, gdb.java/jmain.exp: Add language skip,
adjust gdb_compile invocations.

22 files changed:
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.ada/array_return.exp
gdb/testsuite/gdb.ada/arrayidx.exp
gdb/testsuite/gdb.ada/exec_changed.exp
gdb/testsuite/gdb.ada/fixed_points.exp
gdb/testsuite/gdb.ada/null_record.exp
gdb/testsuite/gdb.ada/packed_array.exp
gdb/testsuite/gdb.ada/start.exp
gdb/testsuite/gdb.ada/watch_arg.exp
gdb/testsuite/gdb.fortran/array-element.exp
gdb/testsuite/gdb.fortran/derived-type.exp
gdb/testsuite/gdb.fortran/exprs.exp
gdb/testsuite/gdb.fortran/subarray.exp
gdb/testsuite/gdb.fortran/types.exp
gdb/testsuite/gdb.java/jmain.exp
gdb/testsuite/gdb.java/jmisc.exp
gdb/testsuite/gdb.java/jprint.exp
gdb/testsuite/gdb.java/jv-print.exp
gdb/testsuite/gdb.mi/mi-var-child-f.exp
gdb/testsuite/lib/ada.exp
gdb/testsuite/lib/gdb.exp
gdb/testsuite/lib/java.exp

index 195ed42..29e213d 100644 (file)
@@ -1,3 +1,22 @@
+2009-11-10  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * lib/gdb.exp (gdb_compile_test): New.
+       (skip_ada_tests, skip_java_tests): New.
+       (gdb_compile): Use gdb_compile_test for f77.
+       * lib/ada.exp (gdb_compile_ada): Use gdb_compile_test to record result.
+       * lib/java.exp (compile_java_from_source): Remove runtests check,
+       use gdb_compile_test to record result.
+       * gdb.ada/packed_array.exp, gdb.ada/fixed_points.exp,
+       gdb.ada/exec_changed.exp, gdb.ada/start.exp,
+       gdb.ada/watch_arg.exp, gdb.ada/null_record.exp,
+       gdb.ada/array_return.exp, gdb.ada/arrayidx.exp,
+       gdb.mi/mi-var-child-f.exp, gdb.fortran/types.exp,
+       gdb.fortran/array-element.exp, gdb.fortran/subarray.exp,
+       gdb.fortran/derived-type.exp, gdb.fortran/exprs.exp,
+       gdb.java/jmisc.exp, gdb.java/jmisc1.exp, gdb.java/jprint.exp,
+       gdb.java/jv-print.exp, gdb.java/jmain.exp: Add language skip,
+       adjust gdb_compile invocations.
+
 2009-11-09  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * Makefile.in (abs_builddir): New.
index 688a45f..4e9712b 100644 (file)
@@ -19,14 +19,16 @@ if $tracelevel then {
 
 load_lib "ada.exp"
 
+if { [skip_ada_tests] } { return -1 }
+
 set testdir "array_return"
 set testfile "${testdir}/p"
 set srcfile ${srcdir}/${subdir}/${testfile}.adb
 set binfile ${objdir}/${subdir}/${testfile}
 
 file mkdir ${objdir}/${subdir}/${testdir}
-if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
-  return -1
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable {debug}] != ""} {
+    return -1
 }
 
 gdb_exit
index 75aa37f..e038e6e 100644 (file)
@@ -19,14 +19,16 @@ if $tracelevel then {
 
 load_lib "ada.exp"
 
+if { [skip_ada_tests] } { return -1 }
+
 set testdir "arrayidx"
 set testfile "${testdir}/p"
 set srcfile ${srcdir}/${subdir}/${testfile}.adb
 set binfile ${objdir}/${subdir}/${testfile}
 
 file mkdir ${objdir}/${subdir}/${testdir}
-if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
-  return -1
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable {debug}] != ""} {
+    return -1
 }
 
 gdb_exit
index bbfa937..460c925 100644 (file)
@@ -19,6 +19,8 @@ if $tracelevel then {
 
 load_lib "ada.exp"
 
+if { [skip_ada_tests] } { return -1 }
+
 set testdir "exec_changed"
 file mkdir ${objdir}/${subdir}/${testdir}
 
@@ -27,8 +29,8 @@ set testfile1 "${testdir}/first"
 set srcfile1 ${srcdir}/${subdir}/${testfile1}.adb
 set binfile1 ${objdir}/${subdir}/${testfile1}$EXEEXT
 
-if {[gdb_compile_ada "${srcfile1}" "${binfile1}" executable [list debug ]] != "" } {
-  return -1
+if {[gdb_compile_ada "${srcfile1}" "${binfile1}" executable {debug}] != ""} {
+    return -1
 }
 
 # Build the second test program
@@ -36,8 +38,8 @@ set testfile2 "${testdir}/second"
 set srcfile2 ${srcdir}/${subdir}/${testfile2}.adb
 set binfile2 ${objdir}/${subdir}/${testfile2}$EXEEXT
 
-if {[gdb_compile_ada "${srcfile2}" "${binfile2}" executable [list debug ]] != "" } {
-  return -1
+if {[gdb_compile_ada "${srcfile2}" "${binfile2}" executable {debug}] != ""} {
+    return -1
 }
 
 # Start with a fresh gdb.
index abc94c8..801aea8 100644 (file)
@@ -19,14 +19,16 @@ if $tracelevel then {
 
 load_lib "ada.exp"
 
+if { [skip_ada_tests] } { return -1 }
+
 set testdir "fixed_points"
 set testfile "${testdir}/fixed_points"
 set srcfile ${srcdir}/${subdir}/${testfile}.adb
 set binfile ${objdir}/${subdir}/${testfile}
 
 file mkdir ${objdir}/${subdir}/${testdir}
-if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
-  return -1
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable {debug}] != ""} {
+    return -1
 }
 
 gdb_exit
index e291b49..dd07496 100644 (file)
@@ -19,14 +19,16 @@ if $tracelevel then {
 
 load_lib "ada.exp"
 
+if { [skip_ada_tests] } { return -1 }
+
 set testdir "null_record"
 set testfile "${testdir}/null_record"
 set srcfile ${srcdir}/${subdir}/${testfile}.adb
 set binfile ${objdir}/${subdir}/${testfile}
 
 file mkdir ${objdir}/${subdir}/${testdir}
-if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
-  return -1
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable {debug}] != ""} {
+    return -1
 }
 
 gdb_exit
index 8a5af69..a773225 100644 (file)
@@ -19,14 +19,16 @@ if $tracelevel then {
 
 load_lib "ada.exp"
 
+if { [skip_ada_tests] } { return -1 }
+
 set testdir "packed_array"
 set testfile "${testdir}/pa"
 set srcfile ${srcdir}/${subdir}/${testfile}.adb
 set binfile ${objdir}/${subdir}/${testfile}
 
 file mkdir ${objdir}/${subdir}/${testdir}
-if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
-  return -1
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable {debug}] != ""} {
+    return -1
 }
 
 gdb_exit
index 526fc5e..690c791 100644 (file)
@@ -19,14 +19,16 @@ if $tracelevel then {
 
 load_lib "ada.exp"
 
+if { [skip_ada_tests] } { return -1 }
+
 set testdir "start"
 set testfile "${testdir}/dummy"
 set srcfile ${srcdir}/${subdir}/${testfile}.adb
 set binfile ${objdir}/${subdir}/${testfile}
 
 file mkdir ${objdir}/${subdir}/${testdir}
-if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
-  return -1
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable {debug}] != ""} {
+    return -1
 }
 
 gdb_exit
index 3465bd4..f7600e9 100644 (file)
@@ -19,14 +19,16 @@ if $tracelevel then {
 
 load_lib "ada.exp"
 
+if { [skip_ada_tests] } { return -1 }
+
 set testdir "watch_arg"
 set testfile "${testdir}/watch"
 set srcfile ${srcdir}/${subdir}/${testfile}.adb
 set binfile ${objdir}/${subdir}/${testfile}
 
 file mkdir ${objdir}/${subdir}/${testdir}
-if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
-  return -1
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable {debug}] != ""} {
+    return -1
 }
 
 gdb_exit
index 316ae07..b8d863a 100644 (file)
@@ -22,12 +22,14 @@ if $tracelevel then {
        strace $tracelevel
 }
 
+if { [skip_fortran_tests] } { return -1 }
+
 set testfile "array-element"
 set srcfile ${testfile}.f
 set binfile ${objdir}/${subdir}/${testfile}
 
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
-    untested "Couldn't compile ${srcfile}"
+if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
+        executable {debug f77}] != ""} {
     return -1
 }
 
index 47e68f2..ca75e1f 100644 (file)
@@ -22,12 +22,14 @@ if $tracelevel then {
        strace $tracelevel
 }
 
+if { [skip_fortran_tests] } { return -1 }
+
 set testfile "derived-type"
 set srcfile ${testfile}.f90
 set binfile ${objdir}/${subdir}/${testfile}
 
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
-    untested "Couldn't compile ${srcfile}"
+if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
+        executable {debug f77}] != ""} {
     return -1
 }
 
index 656c54f..ae3f771 100644 (file)
@@ -21,6 +21,8 @@ if $tracelevel then {
        strace $tracelevel
 }
 
+if { [skip_fortran_tests] } { continue }
+
 set prms_id 0
 set bug_id 0
 
index b8ddf26..47fc40d 100644 (file)
@@ -22,12 +22,14 @@ if $tracelevel then {
        strace $tracelevel
 }
 
+if { [skip_fortran_tests] } { return -1 }
+
 set testfile "subarray"
 set srcfile ${testfile}.f
 set binfile ${objdir}/${subdir}/${testfile}
 
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
-    untested "Couldn't compile ${srcfile}"
+if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
+       executable {debug f77}] != ""} {
     return -1
 }
 
index 1eb4c42..51e6e2f 100644 (file)
@@ -21,6 +21,8 @@ if $tracelevel then {
        strace $tracelevel
 }
 
+if { [skip_fortran_tests] } { continue }
+
 set prms_id 0
 set bug_id 0
 
index d834c20..5545f23 100644 (file)
@@ -22,12 +22,13 @@ if $tracelevel then {
 
 load_lib "java.exp"
 
+if { [skip_java_tests] } { continue }
+
 set testfile "jmain"
 set srcfile ${srcdir}/$subdir/${testfile}.java
 set binfile ${objdir}/${subdir}/${testfile}
-if  { [compile_java_from_source ${srcfile} ${binfile} "-g"] != "" } {
-    untested "Couldn't compile ${srcfile}"
-    return -1
+if {[compile_java_from_source ${srcfile} ${binfile} "-g"] != ""} {
+    continue
 }
 
 set prms_id 0
index 3970e61..50d32db 100644 (file)
@@ -22,12 +22,13 @@ if $tracelevel then {
 
 load_lib "java.exp"
 
+if { [skip_java_tests] } { continue }
+
 set testfile "jmisc"
 set srcfile ${srcdir}/$subdir/${testfile}.java
 set binfile ${objdir}/${subdir}/${testfile}
-if  { [compile_java_from_source ${srcfile} ${binfile} "-g"] != "" } {
-    untested "Couldn't compile ${srcfile}"
-    return -1
+if {[compile_java_from_source ${srcfile} ${binfile} "-g"] != ""} {
+    continue
 }
 
 # Set the current language to java.  This counts as a test.  If it
index cd6eec0..a7cd84e 100644 (file)
@@ -22,12 +22,13 @@ if $tracelevel then {
 
 load_lib "java.exp"
 
+if { [skip_java_tests] } { continue }
+
 set testfile "jprint"
 set srcfile ${srcdir}/$subdir/${testfile}.java
 set binfile ${objdir}/${subdir}/${testfile}
-if  { [compile_java_from_source ${srcfile} ${binfile} "-g"] != "" } {
-    untested "Couldn't compile ${srcfile}"
-    return -1
+if {[compile_java_from_source ${srcfile} ${binfile} "-g"] != ""} {
+    continue
 }
 
 # Set the current language to java.  This counts as a test.  If it
index 52d44dc..42a0716 100644 (file)
@@ -17,6 +17,10 @@ if $tracelevel then {
        strace $tracelevel
 }
 
+load_lib "java.exp"
+
+if { [skip_java_tests] } { continue }
+
 set prms_id 0
 set bug_id 0
 
index e83fd3b..cb12308 100644 (file)
@@ -18,6 +18,8 @@
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
+if { [skip_fortran_tests] } { return -1 }
+
 gdb_exit
 if [mi_gdb_start] {
     continue
@@ -26,8 +28,8 @@ if [mi_gdb_start] {
 set testfile "array"
 set srcfile ${testfile}.f
 set binfile ${objdir}/${subdir}/${testfile}
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
-    untested "Couldn't compile ${srcfile}"
+if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
+        executable {debug f77}] != ""} {
     return -1
 }
 
index 4c161d6..9ec6b3f 100644 (file)
@@ -423,9 +423,8 @@ proc gdb_compile_ada {source dest type options} {
     # gdb_compile to determine whether the build has succeeded or not.
     # We therefore simply check whether the dest file has been created
     # or not. Unless not present, the build has succeeded.
-    if ![file exists $dest] {
-        unsupported "Ada compilation failed: $result"
-        return "Ada compilation failed."
-    }
+    if [file exists $dest] { set result "" }
+    gdb_compile_test $source $result
+    return $result
 }
 
index 590a284..53253b3 100644 (file)
@@ -1241,6 +1241,24 @@ proc default_gdb_start { } {
     return 0;
 }
 
+# Examine the output of compilation to determine whether compilation
+# failed or not.  If it failed determine whether it is due to missing
+# compiler or due to compiler error.  Report pass, fail or unsupported
+# as appropriate
+
+proc gdb_compile_test {src output} {
+    if { $output == "" } {
+       pass "compilation [file tail $src]"
+    } elseif { [regexp {^[a-zA-Z_0-9]+: Can't find [^ ]+\.$} $output] } {
+       unsupported "compilation [file tail $src]"
+    } elseif { [regexp {.*: command not found[\r|\n]*$} $output] } {
+       unsupported "compilation [file tail $src]"
+    } else {
+       verbose -log "compilation failed: $output" 2
+       fail "compilation [file tail $src]"
+    }
+}
+
 # Return a 1 for configurations for which we don't even want to try to
 # test C++.
 
@@ -1266,6 +1284,18 @@ proc skip_fortran_tests {} {
     return 0
 }
 
+# Return a 1 if I don't even want to try to test ada.
+
+proc skip_ada_tests {} {
+    return 0
+}
+
+# Return a 1 if I don't even want to try to test java.
+
+proc skip_java_tests {} {
+    return 0
+}
+
 # Return a 1 if we should skip shared library tests.
 
 proc skip_shlib_tests {} {
@@ -1836,9 +1866,15 @@ proc gdb_compile {source dest type options} {
 
     regsub "\[\r\n\]*$" "$result" "" result;
     regsub "^\[\r\n\]*" "$result" "" result;
-
-    if { $result != "" && [lsearch $options quiet] == -1} {
-       clone_output "gdb compile failed, $result"
+    
+    if {[lsearch $options quiet] < 0} {
+       # We shall update this on a per language basis, to avoid
+       # changing the entire testsuite in one go.
+       if {[lsearch $options f77] >= 0} {
+           gdb_compile_test $source $result
+       } elseif { $result != "" } {
+           clone_output "gdb compile failed, $result"
+       }
     }
     return $result;
 }
index 19619df..c45af35 100644 (file)
@@ -90,31 +90,19 @@ proc java_init { args } {
 #
 proc compile_java_from_source { srcfile binfile compile_args } {
     global GCJ_UNDER_TEST
-    global runtests
     global java_initialized
 
     if { $java_initialized != 1 } { java_init }
 
-    set errname [file rootname [file tail $srcfile]]
-    if {! [runtest_file_p $runtests $errname]} {
-        return
-    }
-
     set args "compiler=$GCJ_UNDER_TEST"
     lappend args "additional_flags=--main=[file rootname [file tail $srcfile]]"
     if { $compile_args != "" } {
        lappend args "additional_flags=$compile_args"
     }
 
-    if { $compile_args != "" } {
-       set errname "$errname $compile_args"
-    }
-
-    set x [target_compile $srcfile ${binfile} executable $args]
-    if { $x != "" } {
-       verbose "target_compile failed: $x" 2
-       return "$errname compilation from source";
-    }
+    set result [target_compile $srcfile ${binfile} executable $args]
+    gdb_compile_test $srcfile $result
+    return $result
 }
 
 # Local Variables: