]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Make gdb.ada/ptype_tagged_param.exp pass
authorTom Tromey <tromey@adacore.com>
Thu, 19 Jan 2023 16:30:18 +0000 (09:30 -0700)
committerTom Tromey <tromey@adacore.com>
Fri, 20 Jan 2023 17:05:39 +0000 (10:05 -0700)
gdb.ada/ptype_tagged_param.exp is failing for me on x86-64 Fedora 36.
However, it's actually generating the correct output -- it is just
that the test thinks that the "ptype" will not work because I do not
have the GNAT debuginfo installed.

This patch changes the code to accept either result, and then to issue
a kfail as appropriate.

gdb/testsuite/gdb.ada/ptype_tagged_param.exp

index 0050d60a0f2999619e145290c6f7a95f2250a1aa..eaf61ddde79a96f67070f41841fa1749add41179 100644 (file)
@@ -31,23 +31,27 @@ if {![runto "pck.adb:20"]} {
   return -1
 }
 
-# Identifying the runtime type of S can only be done when we have the debug
-# info for the GNAT runtime.
-
-if { $has_runtime_debug_info } {
-    gdb_test "ptype s" \
-       [multi_line \
-           "type = <ref> new pck.shape with record" \
-           "    r: integer;" \
-           "end record"] \
-       "ptype s, with debug info"
-} else {
-    gdb_test "ptype s" \
-       [multi_line \
-           "type = <ref> tagged record" \
-           "    x: integer;" \
-           "    y: integer;" \
-           "end record" ] \
-       "ptype s, without debug info"
+# With some versions of the compiler, identifying the runtime type of
+# S can only be done when we have the debug info for the GNAT runtime.
+set ordinary [multi_line \
+                 "type = <ref> new pck.shape with record" \
+                 "    r: integer;" \
+                 "end record"]
+set nodebug [multi_line \
+                "type = <ref> tagged record" \
+                "    x: integer;" \
+                "    y: integer;" \
+                "end record"]
+
+gdb_test_multiple "ptype s" "ptype s" {
+    -re -wrap $ordinary {
+       pass $gdb_test_name
+    }
+    -re -wrap $nodebug {
+       if {$has_runtime_debug_info} {
+           kfail "no debug info" $gdb_test_name
+       } else {
+           fail $gdb_test_name
+       }
+    }
 }
-