[gdb/testsuite] Add xfail for PR gcc/101633
authorTom de Vries <tdevries@suse.de>
Tue, 27 Jul 2021 15:14:17 +0000 (17:14 +0200)
committerTom de Vries <tdevries@suse.de>
Tue, 27 Jul 2021 15:14:17 +0000 (17:14 +0200)
With gcc 7.5.0, I run into:
...
(gdb) print objects^M
$1 = ((tag => object, values => ()), (tag => unused))^M
(gdb) FAIL: gdb.ada/array_of_variant.exp: scenario=minimal: print entire array
...
while with gcc 8.5.0 we have:
...
(gdb) print objects^M
$1 = ((tag => object, values => (2, 2, 2, 2, 2)), (tag => unused))^M
(gdb) PASS: gdb.ada/array_of_variant.exp: scenario=minimal: print entire array
...

This is due to a gcc PR, which I've filed at
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101633 "Bug 101633 - [debug]
DW_TAG_subrange_type missing DW_AT_upper_bound".

Fix by marking this and related FAILs as XFAIL.

Tested on x86_64-linux.

gdb/ChangeLog:

2021-07-27  Tom de Vries  <tdevries@suse.de>

PR testsuite/26903
* gdb/testsuite/gdb.ada/array_of_variant.exp: Add xfails.

gdb/ChangeLog
gdb/testsuite/gdb.ada/array_of_variant.exp

index 841475de96eff2bdfddaf5a260dedadd2fac043a..f62884a37e4da25bd0faed7fcf267cd08f2c6f67 100644 (file)
@@ -1,3 +1,8 @@
+2021-07-27  Tom de Vries  <tdevries@suse.de>
+
+       PR testsuite/26903
+       * gdb/testsuite/gdb.ada/array_of_variant.exp: Add xfails.
+
 2021-07-26  Frederic Cambus  <fred@statdns.com>
 
        * syscalls/netbsd.xml: Regenerate.
index dfcbe751b57475a96d5fad1a28bb0a10c5111b13..60b614d7cf66451c50855504d0d1f6a1f80b55aa 100644 (file)
@@ -19,6 +19,29 @@ if { [skip_ada_tests] } { return -1 }
 
 standard_ada_testfile p
 
+if [get_compiler_info] {
+    return -1
+}
+set old_gcc [expr [test_compiler_info {gcc-[0-7]-*}]]
+
+proc gdb_test_with_xfail { cmd re re_xfail msg } {
+    global scenario old_gcc
+    set have_xfail [expr $old_gcc && [string equal "$scenario" "minimal"]]
+
+    gdb_test_multiple $cmd $msg {
+       -re -wrap $re  {
+           pass $gdb_test_name
+       }
+       -re -wrap $re_xfail {
+           if { $have_xfail } {
+               # gcc/101633
+               setup_xfail *-*-*
+           }
+           fail $gdb_test_name
+       }
+    }
+}
+
 foreach_with_prefix scenario {all minimal} {
     set flags [list debug additional_flags=-fgnat-encodings=$scenario]
 
@@ -32,17 +55,23 @@ foreach_with_prefix scenario {all minimal} {
     runto "p.adb:$bp_location"
 
     set v1 "(tag => object, values => (2, 2, 2, 2, 2))"
+    set v1_xfail "(tag => object, values => ())"
     set v2 "(tag => unused)"
 
-    gdb_test "print objects" \
-       [string_to_regexp " = ($v1, $v2)"] \
-       "print entire array"
-    gdb_test "print objects(1)" \
-       [string_to_regexp " = $v1"] \
+    set re [string_to_regexp " = ($v1, $v2)"]
+    set re_xfail [string_to_regexp " = ($v1_xfail, $v2)"]
+    gdb_test_with_xfail "print objects" $re $re_xfail "print entire array"
+
+    set re [string_to_regexp " = $v1"]
+    set re_xfail [string_to_regexp " = $v1_xfail"]
+    gdb_test_with_xfail "print objects(1)" $re $re_xfail \
        "print first array element"
-    gdb_test "print objects(1 .. 1)" \
-       [string_to_regexp " = ($v1)"] \
+
+    set re [string_to_regexp " = ($v1)"]
+    set re_xfail [string_to_regexp " = ($v1_xfail)"]
+    gdb_test_with_xfail "print objects(1 .. 1)" $re $re_xfail \
        "print first array slice"
+
     gdb_test "print objects(2)" \
        [string_to_regexp " = $v2"] \
        "print second array element"
This page took 0.028571 seconds and 4 git commands to generate.