Adapt gdb.ada/pkd_arr_elem.exp to accept reordered components
authorJoel Brobecker <brobecker@adacore.com>
Mon, 11 Dec 2017 05:16:31 +0000 (00:16 -0500)
committerJoel Brobecker <brobecker@adacore.com>
Mon, 11 Dec 2017 05:16:31 +0000 (00:16 -0500)
Recent versions of GNAT are capable of reordering record components
to make their access for efficient. This patch adapts this test to
accept both cases (reordered or not).

gdb/testsuite/ChangeLog:

        * gdb.ada/pkd_arr_elem.exp: Adapt "print test" test to accept
        output with components being reordered.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.ada/pkd_arr_elem.exp

index 48bad29..87ecb23 100644 (file)
@@ -1,3 +1,8 @@
+2017-12-11  Joel Brobecker  <brobecker@adacore.com>
+
+       * gdb.ada/pkd_arr_elem.exp: Adapt "print test" test to accept
+       output with components being reordered.
+
 2017-12-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
            Pedro Alves  <palves@redhat.com>
 
index 8d3a385..85458aa 100644 (file)
@@ -28,8 +28,18 @@ clean_restart ${testfile}
 set bp_location [gdb_get_line_number "START" ${testdir}/failure.adb]
 runto "failure.adb:$bp_location"
 
-gdb_test "print test" \
-         "= \\(size => 100, str => \\(33 'A', nul <repeats 99 times>\\), length => 1\\)"
+# Print Test.  The order of the components depends on which version of
+# the compiler being used, as newer version can re-order the order
+# of the components.  Accept both known orders.
+set test "print test"
+gdb_test_multiple "$test" $test {
+  -re "= \\(size => 100, length => 1, str => \\(33 'A', nul <repeats 99 times>\\)\\).*$gdb_prompt $" {
+    pass $test
+    }
+  -re "= \\(size => 100, str => \\(33 'A', nul <repeats 99 times>\\), length => 1\\).*$gdb_prompt $" {
+    pass $test
+    }
+}
 
 gdb_test "print test.str" \
          "= \\(33 'A', nul <repeats 99 times>\\)"