Re: [PATCH] Harden tests that deal with memory regions

Pedro Alves
2017-01-26T13:17:56Z

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.

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

Missing period.

> --- 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.

> 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)

> +
> +# 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.

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

Thanks,
Pedro Alves