diff options
author | Tom de Vries <tdevries@suse.de> | 2021-07-27 16:56:23 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2021-07-27 16:56:23 +0200 |
commit | af2b87e649bc50407ecc230929bed9b3df1f4d03 (patch) | |
tree | 8bacd07ef4054eed9122a3c1a419153609b69370 /gdb | |
parent | ca89bdf8b2b013484f252d9688cb01a3def2fa2e (diff) | |
download | gdb-af2b87e649bc50407ecc230929bed9b3df1f4d03.zip gdb-af2b87e649bc50407ecc230929bed9b3df1f4d03.tar.gz gdb-af2b87e649bc50407ecc230929bed9b3df1f4d03.tar.bz2 |
[gdb/testsuite] Add xfail for PR gcc/101633
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.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/gdb.ada/array_of_variant.exp | 53 |
1 files changed, 42 insertions, 11 deletions
diff --git a/gdb/testsuite/gdb.ada/array_of_variant.exp b/gdb/testsuite/gdb.ada/array_of_variant.exp index d93ad47..6372e2c 100644 --- a/gdb/testsuite/gdb.ada/array_of_variant.exp +++ b/gdb/testsuite/gdb.ada/array_of_variant.exp @@ -20,6 +20,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] @@ -33,17 +56,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" @@ -56,11 +85,13 @@ foreach_with_prefix scenario {all minimal} { gdb_test_no_output \ "python o = gdb.parse_and_eval('objects')" \ "fetch value for python" - gdb_test "python print(o)" \ - [string_to_regexp "($v1, $v2)"] \ + set re [string_to_regexp "($v1, $v2)"] + set re_xfail [string_to_regexp "($v1_xfail, $v2)"] + gdb_test_with_xfail "python print(o)" $re $re_xfail \ "python print array" - gdb_test "python print(o\[1\])" \ - [string_to_regexp "$v1"] \ + set re [string_to_regexp "$v1"] + set re_xfail [string_to_regexp "$v1_xfail"] + gdb_test_with_xfail "python print(o\[1\])" $re $re_xfail \ "python print first array element" gdb_test "python print(o\[2\])" \ [string_to_regexp "$v2"] \ |