[gdb/testsuite] Fix gdb.opt/inline-locals.exp KFAILs
authorTom de Vries <tdevries@suse.de>
Thu, 19 Mar 2020 07:44:04 +0000 (08:44 +0100)
committerTom de Vries <tdevries@suse.de>
Thu, 19 Mar 2020 07:44:04 +0000 (08:44 +0100)
When running test-case gdb.opt/inline-locals.exp, I get:
...
Running src/gdb/testsuite/gdb.opt/inline-locals.exp ...
KPASS: gdb.opt/inline-locals.exp: info locals above bar 2 (PRMS gdb/xyz)
KPASS: gdb.opt/inline-locals.exp: info locals above bar 3 (PRMS gdb/xyz)
...

I've opened PR25695 - 'abstract and concrete variable listed both with "info
locals"' to refer to in the PRMS field, and this patch adds that reference.

Furthermore, I noticed that while I see KPASSes, given the problem description
the tests should actually be KFAILs.  This patch also fixes that.

Tested on x86_64-linux.  With gcc 7.5.0, I get 2 KFAILs.  With clang 5.0.2,
the tests pass.

gdb/testsuite/ChangeLog:

2020-03-19  Tom de Vries  <tdevries@suse.de>

* gdb.opt/inline-locals.exp: Add kfail PR number.  Make kfail matching
more precise.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.opt/inline-locals.exp

index ba14abb2c6e47746e09f03a4eb495716e6403e91..0588fe6ac1a72c300f83e1488d5d790895cffcbf 100644 (file)
@@ -1,3 +1,8 @@
+2020-03-19  Tom de Vries  <tdevries@suse.de>
+
+       * gdb.opt/inline-locals.exp: Add kfail PR number.  Make kfail matching
+       more precise.
+
 2020-03-18  Tom de Vries  <tdevries@suse.de>
 
        * gdb.dwarf2/break-inline-psymtab-2.c: New test.
index 58712513e4981eeb44dc77a871788415826c6491..3dee0aabfe497a2cf07b7880a7a3b698b701a04a 100644 (file)
@@ -43,8 +43,17 @@ if { ! $no_frames } {
        "backtrace from bar 2"
     gdb_test "up" "#1  .*func1 .* at .*" "up from bar 2"
     gdb_test "info frame" ".*inlined into frame.*" "func1 inlined 2"
-    setup_kfail "gdb/xyz" *-*-*
-    gdb_test "info locals" "array = {.*}" "info locals above bar 2"
+    set pass_re "array = {$decimal, \[^\r\n\]*}"
+    set kfail_re [multi_line $pass_re \
+                     "array = {<optimized out> <repeats 64 times>}"]
+    gdb_test_multiple "info locals" "info locals above bar 2" {
+       -re -wrap $pass_re {
+           pass $gdb_test_name
+       }
+       -re -wrap $kfail_re {
+           kfail gdb/25695 $gdb_test_name
+       }
+    }
 
     set msg "info args above bar 2"
     gdb_test_multiple "info args" $msg {
@@ -83,8 +92,17 @@ if { ! $no_frames } {
        "backtrace from bar 3"
     gdb_test "up" "#1  .*func1 .* at .*" "up from bar 3"
     gdb_test "info frame" ".*inlined into frame.*" "func1 inlined 3"
-    setup_kfail "gdb/xyz" *-*-*
-    gdb_test "info locals" "array = {.*}" "info locals above bar 3"
+    set pass_re "array = {$decimal, \[^\r\n\]*}"
+    set kfail_re [multi_line $pass_re \
+                     "array = {<optimized out> <repeats 64 times>}"]
+    gdb_test_multiple "info locals" "info locals above bar 2" {
+       -re -wrap $pass_re {
+           pass $gdb_test_name
+       }
+       -re -wrap $kfail_re {
+           kfail gdb/25695 $gdb_test_name
+       }
+    }
 
     set msg "info args above bar 3"
     gdb_test_multiple "info args" $msg {