* 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 195ed42994f1a247fd8e1d95c74bcd62a91c4590..29e213dccdcb9afeb54eafc5abf62a5cd7385165 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 688a45faed104e62615113d62f9a610e22700248..4e9712b8e545f35b71b4f1509a96be45e7149b5f 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 75aa37f62fcdf24385c24d5a88eaa1095bef79da..e038e6ec60e4501ddf4bed7d136cecb1c0a7074c 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 bbfa9372371ac28454cc118f44e6b9195a952052..460c92589495a9122f08513a970134a637d999dc 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 abc94c8530174a31f36b287cb832bb6e2c341d29..801aea83884b8783759ce9957d3b6aa534ce7549 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 e291b4925243c4e63613bce2c86c5e8d087c8a9a..dd074962982d609fe7aa4a29e19a3402d8968cfc 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 8a5af69bbf9927f091f7860c3362385a9fed4f33..a7732254c0a104e394fb657a9abfd88111864a5a 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 526fc5e91e04e5e1e40aeba12d9c5d8caadf60e3..690c7918a403143d753c04dc8c540dba5dffe678 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 3465bd40bd0ff58dbdfec24c84c38f06d6371df6..f7600e983e8b60283c1f3725a0aaa78d7344db74 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 316ae07deaecb5138bf7989b2d54331652003d09..b8d863a1deab0d0b8dbfb7d532b5082204a89c7e 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 47e68f2175c64708980777cee946333809b8c48e..ca75e1f56ed4d896843e62a9b9f43317a7c79a2a 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 656c54fca8b34acc4ffdbfc89d780a3af1a0d756..ae3f771e6f2df74f2796ffced3576d51dd8a76af 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 b8ddf2660c6cdbc881d081da6b95487370f24402..47fc40dca80c60709aad6661a08d9bde55352719 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 1eb4c42a469c8a82960763d3ffb62b652d90ec34..51e6e2f359b383580890dff4e97cd0c0f8796365 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 d834c202501600fbd44fdedfbd99140c78ef9988..5545f230b96ddbe1d25148d1d14bfc29bd122a3a 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 3970e61bc3c2605190201b71a3ca246e9569cbcd..50d32db00b677f8d8270ea57cedb777e997bfc62 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 cd6eec095f92ddc7a34ab6240eee7b4e108ea995..a7cd84ef287ccb1cf29552cc3468d501a3d769fe 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 52d44dc91103faa8dd458f016d991520e9d5f97f..42a0716bbe8c48cc3295325da0e5a30af9408ab2 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 e83fd3b9e045e068e0afa5b7e5fdcf73367c5f44..cb123083772423ff67f2b9df8941a4f12ec9037a 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 4c161d6dc88a8e878a0ced3f888afdd17c7ceed6..9ec6b3fa1e56e280532515339d6ea19b1c198ed9 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 590a28470ac1450d059e5b5b9108a11809b54131..53253b348cdd6cf58cbcd46e8a98ab03f725b959 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 19619df6bfafbc74f0e6076ea71c209530765442..c45af359229e7e810e68123cd32d3bc9a685d0d5 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: