[committed,gdb/testsuite] Make skip_libstdcxx_probe_tests return 1 if true
Commit Message
[ was: Re: [PATCH][gdb, c++] Improve error message when using libstdcxx
without SDT probes ]
On 26-08-19 16:11, Sergio Durigan Junior wrote:
>> +set libstdcxx_probe_tests_supported [skip_libstdcxx_probe_tests]
> Not your fault, but this reversed logic (skip_libstdcxx_probe_tests
> returns 0 if the tests should be skipped) is kinda confusing.
>
It's also confusing me.
Fixed in attached patch.
Committed.
Thanks,
- Tom
Comments
On Monday, August 26 2019, Tom de Vries wrote:
> [ was: Re: [PATCH][gdb, c++] Improve error message when using libstdcxx
> without SDT probes ]
>
> On 26-08-19 16:11, Sergio Durigan Junior wrote:
>>> +set libstdcxx_probe_tests_supported [skip_libstdcxx_probe_tests]
>> Not your fault, but this reversed logic (skip_libstdcxx_probe_tests
>> returns 0 if the tests should be skipped) is kinda confusing.
>>
>
> It's also confusing me.
>
> Fixed in attached patch.
Aha, thanks!
> Committed.
>
> Thanks,
> - Tom
>
> [gdb/testsuite] Make skip_libstdcxx_probe_tests return 1 if true
>
> The tcl proc skip_libstdcxx_probe_tests currently returns 0 if the probe tests
> need to be skipped, while tcl interprets 0 as false rather than true, which is
> confusing.
>
> Fix this by making skip_libstdcxx_probe_tests return 1 if the probe tests need
> to be skipped.
>
> Tested on x86_64-linux.
>
> gdb/testsuite/ChangeLog:
>
> 2019-08-26 Tom de Vries <tdevries@suse.de>
>
> * lib/gdb.exp (skip_libstdcxx_probe_tests_prompt): Return 1 if probe
> * tests need to be skipped.
> * gdb.cp/exceptprint.exp: Update call to skip_libstdcxx_probe_tests.
> * gdb.mi/mi-catch-cpp-exceptions.exp: Update call to
> mi_skip_libstdcxx_probe_tests.
>
> ---
> gdb/testsuite/gdb.cp/exceptprint.exp | 2 +-
> gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp | 2 +-
> gdb/testsuite/lib/gdb.exp | 9 +++++----
> 3 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/gdb/testsuite/gdb.cp/exceptprint.exp b/gdb/testsuite/gdb.cp/exceptprint.exp
> index 46378d1b69..f6dcd0f5bd 100644
> --- a/gdb/testsuite/gdb.cp/exceptprint.exp
> +++ b/gdb/testsuite/gdb.cp/exceptprint.exp
> @@ -27,7 +27,7 @@ if {![runto_main]} {
> return -1
> }
>
> -if {![skip_libstdcxx_probe_tests]} {
> +if {[skip_libstdcxx_probe_tests]} {
> untested "could not find libstdc++ stap probe"
> return -1
> }
> diff --git a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
> index 029dc1bd02..2951497882 100644
> --- a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
> +++ b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
> @@ -36,7 +36,7 @@ mi_gdb_load ${binfile}
> if {![mi_run_to_main]} {
> return -1
> }
> -set libstdcxx_probe_tests_supported [mi_skip_libstdcxx_probe_tests]
> +set libstdcxx_probe_tests_supported [expr ![mi_skip_libstdcxx_probe_tests]]
>
> # Grab some line numbers we'll need.
> set catch_1_lineno [gdb_get_line_number "Catch 1"]
> diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
> index af56e8aa12..76805fb5ec 100644
> --- a/gdb/testsuite/lib/gdb.exp
> +++ b/gdb/testsuite/lib/gdb.exp
> @@ -3158,20 +3158,21 @@ proc skip_unwinder_tests {} {
> return $ok
> }
>
> -# Return 0 if we should skip tests that require the libstdc++ stap
> +# Return 1 if we should skip tests that require the libstdc++ stap
> # probes. This must be invoked while gdb is running, after shared
> # libraries have been loaded. PROMPT_REGEXP is the expected prompt.
>
> proc skip_libstdcxx_probe_tests_prompt { prompt_regexp } {
> - set ok 0
> + set supported 0
> gdb_test_multiple "info probe" "check for stap probe in libstdc++" {
> -re ".*libstdcxx.*catch.*\r\n$prompt_regexp" {
> - set ok 1
> + set supported 1
> }
> -re "\r\n$prompt_regexp" {
> }
> } "$prompt_regexp"
> - return $ok
> + set skip [expr !$supported]
> + return $skip
> }
>
> # As skip_libstdcxx_probe_tests_prompt, with gdb_prompt.
>
[gdb/testsuite] Make skip_libstdcxx_probe_tests return 1 if true
The tcl proc skip_libstdcxx_probe_tests currently returns 0 if the probe tests
need to be skipped, while tcl interprets 0 as false rather than true, which is
confusing.
Fix this by making skip_libstdcxx_probe_tests return 1 if the probe tests need
to be skipped.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-08-26 Tom de Vries <tdevries@suse.de>
* lib/gdb.exp (skip_libstdcxx_probe_tests_prompt): Return 1 if probe
* tests need to be skipped.
* gdb.cp/exceptprint.exp: Update call to skip_libstdcxx_probe_tests.
* gdb.mi/mi-catch-cpp-exceptions.exp: Update call to
mi_skip_libstdcxx_probe_tests.
---
gdb/testsuite/gdb.cp/exceptprint.exp | 2 +-
gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp | 2 +-
gdb/testsuite/lib/gdb.exp | 9 +++++----
3 files changed, 7 insertions(+), 6 deletions(-)
@@ -27,7 +27,7 @@ if {![runto_main]} {
return -1
}
-if {![skip_libstdcxx_probe_tests]} {
+if {[skip_libstdcxx_probe_tests]} {
untested "could not find libstdc++ stap probe"
return -1
}
@@ -36,7 +36,7 @@ mi_gdb_load ${binfile}
if {![mi_run_to_main]} {
return -1
}
-set libstdcxx_probe_tests_supported [mi_skip_libstdcxx_probe_tests]
+set libstdcxx_probe_tests_supported [expr ![mi_skip_libstdcxx_probe_tests]]
# Grab some line numbers we'll need.
set catch_1_lineno [gdb_get_line_number "Catch 1"]
@@ -3158,20 +3158,21 @@ proc skip_unwinder_tests {} {
return $ok
}
-# Return 0 if we should skip tests that require the libstdc++ stap
+# Return 1 if we should skip tests that require the libstdc++ stap
# probes. This must be invoked while gdb is running, after shared
# libraries have been loaded. PROMPT_REGEXP is the expected prompt.
proc skip_libstdcxx_probe_tests_prompt { prompt_regexp } {
- set ok 0
+ set supported 0
gdb_test_multiple "info probe" "check for stap probe in libstdc++" {
-re ".*libstdcxx.*catch.*\r\n$prompt_regexp" {
- set ok 1
+ set supported 1
}
-re "\r\n$prompt_regexp" {
}
} "$prompt_regexp"
- return $ok
+ set skip [expr !$supported]
+ return $skip
}
# As skip_libstdcxx_probe_tests_prompt, with gdb_prompt.