py-type.exp: Do not run tests if binary fails to build
Commit Message
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
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
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!
@@ -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
+ }
+}