Fix FAILs in compare-sections.exp
authorThomas Preud'homme <thomas.preudhomme@arm.com>
Tue, 26 Sep 2017 08:57:18 +0000 (09:57 +0100)
committerThomas Preud'homme <thomas.preudhomme@arm.com>
Tue, 26 Sep 2017 08:57:18 +0000 (09:57 +0100)
compare-sections.exp has two cases that are not handled appropriately:
1) value read with msb set
2) error while patching that section

This patch adapts the "get value of read-only section" test to print
the value as an unsigned integer to fix 1) and test for the error
message to not set the written variable if read-only section cannot
be written to so as to solve 2).

2017-09-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
    Pedro Alves  <palves@redhat.com>

gdb/testsuite/
* gdb.base/compare-sections.exp (get value of read-only section): Read
as unsigned value.
(corrupt read-only section): Likewise and don't set written if patching
failed.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/compare-sections.exp

index 6584a23..4b6cb80 100644 (file)
@@ -1,3 +1,11 @@
+2017-09-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+           Pedro Alves  <palves@redhat.com>
+
+       * gdb.base/compare-sections.exp (get value of read-only section): Read
+       as unsigned value.
+       (corrupt read-only section): Likewise and don't set written if patching
+       failed.
+
 2017-09-21  Kevin Buettner  <kevinb@redhat.com>
 
        * gdb.python/py-thrhandle.c, gdb.python/py-thrhandle.exp: New
index e4b9921..757ccf8 100644 (file)
@@ -117,7 +117,7 @@ with_test_prefix "read-only" {
     set orig -1
 
     set test "get value of read-only section"
-    gdb_test_multiple "print /d *(unsigned char *) $ro_address" "$test" {
+    gdb_test_multiple "print /u *(unsigned char *) $ro_address" "$test" {
        -re " = (\[0-9\]*).*$gdb_prompt $" {
            set orig $expect_out(1,string)
            pass "$test"
@@ -135,7 +135,10 @@ with_test_prefix "read-only" {
     # Write PATCH to memory.
     set written -1
     set test "corrupt read-only section"
-    gdb_test_multiple "print /d *(unsigned char *) $ro_address = $patch" "$test" {
+    gdb_test_multiple "print /u *(unsigned char *) $ro_address = $patch" "$test" {
+       -re " = .*Cannot access memory at address $ro_address.*$gdb_prompt $" {
+           pass "$test (cannot write)"
+       }
        -re " = (\[0-9\]*).*$gdb_prompt $" {
            set written $expect_out(1,string)
            pass "$test"