Re: [PATCH][gdb/testsuite] Ignore pass/fail/unsupported in gdb-caching-proc.exp

Simon Marchi
2020-02-17T23:58:42Z

On 2020-02-17 6:23 p.m., Tom de Vries wrote:
> diff --git a/gdb/testsuite/lib/ada.exp b/gdb/testsuite/lib/ada.exp
> index 9933cc951e..0689eeb239 100644
> --- a/gdb/testsuite/lib/ada.exp
> +++ b/gdb/testsuite/lib/ada.exp
> @@ -52,9 +52,9 @@ proc target_compile_ada_from_dir {builddir source dest type options} {
> return -options $options $result
> }
>
> -# Compile some Ada code.
> +# Compile some Ada code. Return "" if the compile was successful.
>
> -proc gdb_compile_ada {source dest type options} {
> +proc gdb_compile_ada_1 {source dest type options} {
>
> set srcdir [file dirname $source]
> set gprdir [file dirname $srcdir]
> @@ -80,6 +80,15 @@ proc gdb_compile_ada {source dest type options} {
> # We therefore simply check whether the dest file has been created
> # or not. Unless not present, the build has succeeded.
> if [file exists $dest] { set result "" }
> + return $result
> +}
> +
> +# Compile some Ada code. Generate "PASS: foo.exp: compilation SOURCE" if the
> +# compile was successful.
> +
> +proc gdb_compile_ada {source dest type options} {
> + set result [gdb_compile_ada_1 $source $dest $type $options]
> +
> gdb_compile_test $source $result
> return $result
> }
> @@ -162,15 +171,13 @@ gdb_caching_proc gnat_runtime_has_debug_info {
> set src "$srcdir/lib/gnat_debug_info_test.adb"
> set dst [standard_output_file "gnat_debug_info_test"]
>
> - if { [gdb_compile_ada $src $dst executable {debug}] != "" } {
> - fail "failed to compile gnat-debug-info test binary"
> + if { [gdb_compile_ada_1 $src $dst executable {debug}] != "" } {
> return 0
> }
>
> clean_restart $dst
>
> if { ! [runto "GNAT_Debug_Info_Test"] } {
> - fail "failed to run to GNAT_Debug_Info_Test"
> return 0
> }
>
> @@ -183,7 +190,6 @@ gdb_caching_proc gnat_runtime_has_debug_info {
> }
> default {
> # Some other unexpected output...
> - fail $gdb_test_name
> }
> }
>

I'd be tempted to keep these last two "fail"s. They should not show up normally,
regardless of whether gnatmake is installed. But let's say:

- the Ada runtime ever changes (__gnat_debug_raise_exception is renamed), or
- the output of the command "whatis __gnat_debug_raise_exception" changes

then they'll show up, which is desirable because it means we need to come
and change something here. If the output of
"whatis __gnat_debug_raise_exception" changes in a way that it is not
recognized anymore and there is no FAIL, then gnat_runtime_has_debug_info
will just start returning false all the time and we might not notice it for a
while.

Simon