[PATCH] Harden tests that deal with memory regions

Luis Machado lgustavo@codesourcery.com
Thu Jan 26 17:37:00 GMT 2017


On 01/26/2017 07:17 AM, Pedro Alves wrote:
> On 01/23/2017 09:24 PM, Luis Machado wrote:
>
>> 2017-01-23  Luis Machado  <lgustavo@codesourcery.com>
>>
>> 	* lib/gdb-memory.exp: New file.
>
> Do we need "gdb-" in the file name?
>
> What other procedures to you envision being placed here?  Should
> this have "regions" in the file name, like "memory-regions.exp"?
> The file's intro comment talks about memory regions.
>

I guess we don't really need the gdb prefix. I originally envisioned 
this particular file storing all proc's dealing with memory checks and 
manipulation (though i ended up describing it in a different way).

I wanted to avoid having to add more helper functions to lib/gdb.exp. 
But maybe it wouldn't be a big problem? My instinct is to modularize it.

Either way is fine with me though, lib/gdb.exp or lib/memory.exp.

>> 	* lib/gdb.exp: Load gdb-memory.exp
>
> Missing period.
>

Thanks.

>> --- a/gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp
>> +++ b/gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp
>> @@ -137,6 +137,9 @@ if ![get_function_bounds "main" main_lo main_hi] {
>>      return -1
>>  }
>>
>> +# Delete all memory regions.
>> +delete_memory_regions
>> +
>
> The comment as-is practically just reads the function name
> in English.  The important detail missing here
> is "target-supplied".  So:
>
>  # Delete all target-supplied memory regions.
>  delete_memory_regions
>
> Likewise in the other spot.
>

On second thought, i've pulled these comments from the test files. The 
updated proc documentation should be enough. What do you think?

>>  gdb_test_no_output "mem 0x30 0x0 ro"
>>  with_test_prefix "0x30 0x0" {
>>      region_fail "0x20 0x50"
>> diff --git a/gdb/testsuite/lib/gdb-memory.exp b/gdb/testsuite/lib/gdb-memory.exp
>> new file mode 100644
>> index 0000000..3377011
>> --- /dev/null
>> +++ b/gdb/testsuite/lib/gdb-memory.exp
>> @@ -0,0 +1,38 @@
>> +# Copyright 2017 Free Software Foundation, Inc.
>
> The file's non-boilerplate code is copyright 2012, so
> preserve that.  (git show 1591a1e8)
>

Done.

>> +
>> +# This program is free software; you can redistribute it and/or modify
>> +# it under the terms of the GNU General Public License as published by
>> +# the Free Software Foundation; either version 3 of the License, or
>> +# (at your option) any later version.
>> +#
>> +# This program is distributed in the hope that it will be useful,
>> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
>> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>> +# GNU General Public License for more details.
>> +#
>> +# You should have received a copy of the GNU General Public License
>> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
>> +
>> +# This file was written by Fred Fish. (fnf@cygnus.com)
>
> No it wasn't.
>
>> +
>> +# Generic gdb subroutines that should work for any target.  If these
>> +# need to be modified for any target, it can be done with a variable
>> +# or by passing arguments.
>
> Stale comment.
>

Thanks copy/paste. Fixed.

>> +
>> +# This file holds functions and data dealing with memory regions manipulation.
>> +
>> +# Deletes all the memory regions GDB currently knows about.
>> +
>> +proc delete_memory_regions {} {

I've added the target-supplied bit to this as well.



More information about the Gdb-patches mailing list