Adapt gdb.ada/variant_record_packed_array.exp to accept reordered components
authorJoel Brobecker <brobecker@adacore.com>
Mon, 11 Dec 2017 05:55:36 +0000 (00:55 -0500)
committerJoel Brobecker <brobecker@adacore.com>
Mon, 11 Dec 2017 05:58:30 +0000 (00:58 -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/variant_record_packed_array.exp: Adapt test to accept
        output with components being reordered.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.ada/variant_record_packed_array.exp

index 87ecb23306e28414854b87c3441d6e7567633e40..28dfa14d7c63f0d49149d5a97115951888a4592b 100644 (file)
@@ -1,3 +1,8 @@
+2017-12-11  Joel Brobecker  <brobecker@adacore.com>
+
+       * gdb.ada/variant_record_packed_array.exp: Adapt test to accept
+       output with components being reordered.
+
 2017-12-11  Joel Brobecker  <brobecker@adacore.com>
 
        * gdb.ada/pkd_arr_elem.exp: Adapt "print test" test to accept
index 95055426bfcbfa7608762a6b3d70365e6f3cb936..b3fc5b5209ff951a6a21d4d511096a486edad080 100644 (file)
@@ -26,14 +26,26 @@ clean_restart ${testfile}
 set bp_location [gdb_get_line_number "START" ${testdir}/foo.adb]
 runto "foo.adb:$bp_location"
 
-gdb_test "print my_buffer" \
-    "= \\(size => 8, buffer => \\(1, 2, 3, 4, 5, 6, 7, 0\\), length => 8\\)" \
-    "print empty"
+set test "print my_buffer"
+gdb_test_multiple "$test" $test {
+    -re "= \\(size => 8, buffer => \\(1, 2, 3, 4, 5, 6, 7, 0\\), length => 8\\)\[\r\n\]+$gdb_prompt $" {
+        pass $test
+    }
+    -re "= \\(size => 8, length => 8, buffer => \\(1, 2, 3, 4, 5, 6, 7, 0\\)\\)\[\r\n\]+$gdb_prompt $" {
+        pass $test
+    }
+}
 
 gdb_test "print my_buffer'Address" \
     "= \\(system\\.address\\) $hex" \
     "print address"
 
-gdb_test "print {foo.octal_buffer} ($)" \
-    "= \\(size => 8, buffer => \\(1, 2, 3, 4, 5, 6, 7, 0\\), length => 8\\)" \
-    "print adress content"
+set test "print {foo.octal_buffer} ($)"
+gdb_test_multiple "$test" $test {
+    -re "= \\(size => 8, buffer => \\(1, 2, 3, 4, 5, 6, 7, 0\\), length => 8\\)\[\r\n\]+$gdb_prompt $" {
+        pass $test
+    }
+    -re "= \\(size => 8, length => 8, buffer => \\(1, 2, 3, 4, 5, 6, 7, 0\\)\\)\[\r\n\]+$gdb_prompt $" {
+        pass $test
+    }
+}