diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2018-02-26 14:30:43 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2018-02-26 15:57:37 -0500 |
commit | 3275ef477498e0500d7ea440f1bc51787acf4610 (patch) | |
tree | bf127ecd492b49710c78428d202042ad2f220d4e /gdb/testsuite/gdb.base | |
parent | c5196c9298b7df29652c0ebe24a43ac6c9c76b0d (diff) | |
download | gdb-3275ef477498e0500d7ea440f1bc51787acf4610.zip gdb-3275ef477498e0500d7ea440f1bc51787acf4610.tar.gz gdb-3275ef477498e0500d7ea440f1bc51787acf4610.tar.bz2 |
Add test for load command
There doesn't seem to by any test for the load command. I suggest to
add this test, so that we can have a minimum of confidence we don't
break it completely while refactoring the code that implements it.
gdb/testsuite/ChangeLog:
* gdb.base/load-command.c: New file.
* gdb.base/load-command.exp: New file.
* lib/gdb.exp (gdb_is_target_remote_prompt): Rename to...
(gdb_is_target_1): ...this, and generalize for other targets
than just remote.
(gdb_is_target_remote): Use gdb_is_target_1.
(gdb_is_target_native): use gdb_is_target_1.
Diffstat (limited to 'gdb/testsuite/gdb.base')
-rw-r--r-- | gdb/testsuite/gdb.base/load-command.c | 22 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/load-command.exp | 49 |
2 files changed, 71 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/load-command.c b/gdb/testsuite/gdb.base/load-command.c new file mode 100644 index 0000000..ee73e2b --- /dev/null +++ b/gdb/testsuite/gdb.base/load-command.c @@ -0,0 +1,22 @@ +/* This test program is part of GDB, the GNU debugger. + + Copyright 2018 Free Software Foundation, Inc. + + 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/>. */ + +int the_variable = 0x1234; + +int main () +{ +} diff --git a/gdb/testsuite/gdb.base/load-command.exp b/gdb/testsuite/gdb.base/load-command.exp new file mode 100644 index 0000000..61ca272 --- /dev/null +++ b/gdb/testsuite/gdb.base/load-command.exp @@ -0,0 +1,49 @@ +# Copyright 2018 Free Software Foundation, Inc. + +# 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/>. + +# Test the "load" command. + +standard_testfile + +# Disable generation of position independent executable (PIE). Otherwise, we +# would have to manually specify an offset to load. + +set opts {debug ldflags=-no-pie} + +if [prepare_for_testing "failed to prepare" $testfile $srcfile $opts] { + return -1 +} + +if ![runto_main] { + fail "can't run to main" + return -1 +} + +# The native target does not support the load command. +if [gdb_is_target_native] { + unsupported "the native target does not support the load command" + return +} + +# Manually change the value of the_variable. +gdb_test "print/x the_variable" " = 0x1234" "check initial value of the_variable" +gdb_test_no_output "set the_variable = 0x5555" "manually change the_variable" +gdb_test "print/x the_variable" " = 0x5555" "check manually changed value of the_variable" + +# Re-load the binary using the load command. +gdb_test "load ${binfile}" ".*Loading section .data.*Transfer rate:.*" "re-load binary" + +# Re-loading the binary should have reset the variable value. +gdb_test "print/x the_variable" " = 0x1234" "check initial value of the_variable" |