From df8899e5c8b60ffbbe93e35315ebb76a9c80ee37 Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Tue, 26 Sep 2017 09:57:18 +0100 Subject: [PATCH] Fix FAILs in compare-sections.exp 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 Pedro Alves 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 | 8 ++++++++ gdb/testsuite/gdb.base/compare-sections.exp | 7 +++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 6584a23f5b..4b6cb809f1 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2017-09-26 Thomas Preud'homme + Pedro Alves + + * 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 * gdb.python/py-thrhandle.c, gdb.python/py-thrhandle.exp: New diff --git a/gdb/testsuite/gdb.base/compare-sections.exp b/gdb/testsuite/gdb.base/compare-sections.exp index e4b9921640..757ccf8e64 100644 --- a/gdb/testsuite/gdb.base/compare-sections.exp +++ b/gdb/testsuite/gdb.base/compare-sections.exp @@ -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" -- 2.34.1