[pushed] Adapt gdb.ada/pkd_arr_elem.exp to accept reordered components

Message ID 1512969620-117985-1-git-send-email-brobecker@adacore.com
State New, archived
Headers

Commit Message

Joel Brobecker Dec. 11, 2017, 5:20 a.m. UTC
  Hello,

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.

Tested on x86_64-linux, and pushed to master.

Thank you,
  

Patch

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 48bad29..87ecb23 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -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>
 
diff --git a/gdb/testsuite/gdb.ada/pkd_arr_elem.exp b/gdb/testsuite/gdb.ada/pkd_arr_elem.exp
index 8d3a385..85458aa 100644
--- a/gdb/testsuite/gdb.ada/pkd_arr_elem.exp
+++ b/gdb/testsuite/gdb.ada/pkd_arr_elem.exp
@@ -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>\\)"