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]
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"
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"] \