py-type.exp: Do not run tests if binary fails to build

Message ID 1443415441-31232-1-git-send-email-simon.marchi@polymtl.ca
State New, archived
Headers

Commit Message

Simon Marchi Sept. 28, 2015, 4:44 a.m. UTC
  I noticed this while working on the test case.  I believe it would make
sense to skip running the tests if the binary failed to build.  Although
I would understand the opposite argument: if the binary does not build
for some reason, we probably want to know about it, and some catastrophic
failures in the tests might alarm us better than a timid "UNTESTED".

gdb/testsuite/ChangeLog:

	* gdb.python/py-type.exp: Do not run tests if binaries fail to
	build.
---
 gdb/testsuite/gdb.python/py-type.exp | 53 ++++++++++++++++++++----------------
 1 file changed, 29 insertions(+), 24 deletions(-)

\ No newline at end of file
  

Comments

Pedro Alves Sept. 29, 2015, 1:56 p.m. UTC | #1
On 09/28/2015 05:44 AM, Simon Marchi wrote:
> I noticed this while working on the test case.  I believe it would make
> sense to skip running the tests if the binary failed to build.  Although
> I would understand the opposite argument: if the binary does not build
> for some reason, we probably want to know about it, and some catastrophic
> failures in the tests might alarm us better than a timid "UNTESTED".
> 

We already do this everywhere else we use prepare_for_testing, etc., though.

So ...

> gdb/testsuite/ChangeLog:
> 
> 	* gdb.python/py-type.exp: Do not run tests if binaries fail to
> 	build.

Looks fine to me with the missing newline:

> +  }
> +}
> \ No newline at end of file
> 

Thanks,
Pedro Alves
  
Simon Marchi Sept. 30, 2015, 2:05 p.m. UTC | #2
On 29 September 2015 at 09:56, Pedro Alves <palves@redhat.com> wrote:
> Looks fine to me with the missing newline:

Thanks, pushed with the newline!
  

Patch

diff --git a/gdb/testsuite/gdb.python/py-type.exp b/gdb/testsuite/gdb.python/py-type.exp
index 26126eb..857cf89 100644
--- a/gdb/testsuite/gdb.python/py-type.exp
+++ b/gdb/testsuite/gdb.python/py-type.exp
@@ -32,6 +32,8 @@  proc build_inferior {exefile lang} {
       untested "Couldn't compile ${srcfile} in $lang mode"
       return -1
   }
+
+  return 0
 }
 
 # Restart GDB.
@@ -261,35 +263,38 @@  proc test_template {} {
 }
 
 # Perform C Tests.
-build_inferior "${binfile}" "c"
-restart_gdb "${binfile}"
+if { [build_inferior "${binfile}" "c"] == 0 } {
+  restart_gdb "${binfile}"
 
-# Skip all tests if Python scripting is not enabled.
-if { [skip_python_tests] } { continue }
+  # Skip all tests if Python scripting is not enabled.
+  if { [skip_python_tests] } { continue }
 
-gdb_test "python print(gdb.lookup_type('char').array(1, 0))" \
-    "char \\\[0\\\]"
+  gdb_test "python print(gdb.lookup_type('char').array(1, 0))" \
+      "char \\\[0\\\]"
 
-gdb_test "python print(gdb.lookup_type('char').array(1, -1))" \
-    "Array length must not be negative.*"
+  gdb_test "python print(gdb.lookup_type('char').array(1, -1))" \
+      "Array length must not be negative.*"
 
-gdb_test "python print(gdb.lookup_type('int').optimized_out())" \
-    "<optimized out>"
+  gdb_test "python print(gdb.lookup_type('int').optimized_out())" \
+      "<optimized out>"
 
-with_test_prefix "lang_c" {
-    runto_bp "break to inspect struct and array."
-    test_fields "c"
-    test_enums
+  with_test_prefix "lang_c" {
+      runto_bp "break to inspect struct and array."
+      test_fields "c"
+      test_enums
+  }
 }
 
+
 # Perform C++ Tests.
-build_inferior "${binfile}-cxx" "c++"
-restart_gdb "${binfile}-cxx"
-with_test_prefix "lang_cpp" {
-    runto_bp "break to inspect struct and array."
-    test_fields "c++"
-    test_base_class
-    test_range
-    test_template
-    test_enums
-}
+if { [build_inferior "${binfile}-cxx" "c++"] == 0 } {
+  restart_gdb "${binfile}-cxx"
+  with_test_prefix "lang_cpp" {
+      runto_bp "break to inspect struct and array."
+      test_fields "c++"
+      test_base_class
+      test_range
+      test_template
+      test_enums
+  }
+}