[gdb/testsuite] Handle failing probe detection in gdb.base/break-probes.exp
authorTom de Vries <tdevries@suse.de>
Thu, 23 Sep 2021 20:42:10 +0000 (22:42 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 23 Sep 2021 20:42:10 +0000 (22:42 +0200)
When running test-case gdb.base/break-probes.exp on ubuntu 18.04.5, we have:
...
 (gdb) bt^M
 #0  0x00007ffff7dd6e12 in ?? () from /lib64/ld-linux-x86-64.so.2^M
 #1  0x00007ffff7dedf50 in ?? () from /lib64/ld-linux-x86-64.so.2^M
 #2  0x00007ffff7dd5128 in ?? () from /lib64/ld-linux-x86-64.so.2^M
 #3  0x00007ffff7dd4098 in ?? () from /lib64/ld-linux-x86-64.so.2^M
 #4  0x0000000000000001 in ?? ()^M
 #5  0x00007fffffffdaac in ?? ()^M
 #6  0x0000000000000000 in ?? ()^M
 (gdb) FAIL: gdb.base/break-probes.exp: ensure using probes
...

The test-case intends to emit an UNTESTED in this case, but fails to do so
because it tries to do it in a regexp clause in a gdb_test_multiple, which
doesn't trigger.  Instead, a default clause triggers which produces the FAIL.

Also the use of UNTESTED is not appropriate, and we should use UNSUPPORTED
instead.

Fix this by silencing the FAIL, and emitting an UNSUPPORTED after the
gdb_test_multiple:
...
 if { ! $using_probes } {
+    unsupported "probes not present on this system"
     return -1
 }
...

Tested on x86_64-linux.

gdb/testsuite/gdb.base/break-probes.exp

index e11591798df07e3203a8f0b7e229e69b590d6579..ac10ac5a3b10b8b8bf8aed5f37b136d8246dffeb 100644 (file)
@@ -52,15 +52,17 @@ set test "ensure using probes"
 set using_probes 0
 gdb_test_multiple "bt" $test {
     -re "#0 +\[^\r\n\]*\\m(__GI_)?$normal_bp\\M.*$gdb_prompt $" {
-       untested "probes not present on this system"
     }
     -re "#0 +\[^\r\n\]*\\m(__GI_)?$probes_bp\\M.*$gdb_prompt $" {
        pass $test
        set using_probes 1
     }
+    -re -wrap "" {
+    }
 }
 
 if { ! $using_probes } {
+    unsupported "probes not present on this system"
     return -1
 }