diff options
Diffstat (limited to 'gdb/testsuite/gdb.base/dprintf-pending.exp')
-rw-r--r-- | gdb/testsuite/gdb.base/dprintf-pending.exp | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/dprintf-pending.exp b/gdb/testsuite/gdb.base/dprintf-pending.exp new file mode 100644 index 00000000000..87abfcebbbc --- /dev/null +++ b/gdb/testsuite/gdb.base/dprintf-pending.exp @@ -0,0 +1,100 @@ +# Copyright 2013 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/>. + + +if {[skip_shlib_tests]} { + return 0 +} + +standard_testfile +set libfile "dprintf-pendshr" +set libsrc $srcdir/$subdir/$libfile.c +set lib_sl [standard_output_file $libfile.sl] + +set lib_opts debug +set exec_opts [list debug shlib=$lib_sl] + +if { [get_compiler_info] } { + return -1 +} + +if { [gdb_compile_shlib $libsrc $lib_sl $lib_opts] != "" + || [gdb_compile $srcdir/$subdir/$srcfile $binfile executable $exec_opts] != ""} { + untested "Could not compile either $libsrc or $srcdir/$subdir/$srcfile." + return -1 +} + +with_test_prefix "without format" { + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + + gdb_test \ + "dprintf pendfunc" \ + "Dprintf.*pendfunc.*pending." \ + "set pending dprintf" \ + ".*Make dprintf pending.*y or \\\[n\\\]. $" \ + "y" + + gdb_test "file ${binfile}" ".*Error in re-setting breakpoint.*" "resolved dprintf fails to be re-set" +} + +with_test_prefix "without symbols" { + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + + gdb_test \ + "dprintf pendfunc1, \"x=%d\\n\", x" \ + "Dprintf.*pendfunc1.*pending." \ + "set pending dprintf" \ + ".*Make dprintf pending.*y or \\\[n\\\]. $" \ + "y" + + gdb_test "info break" \ + "Num Type\[ \]+Disp Enb Address\[ \]+What.* +\[0-9\]+\[\t \]+dprintf.*keep y.*PENDING.*pendfunc1.*" \ + "single pending dprintf info" + + gdb_load ${binfile} + gdb_load_shlibs $lib_sl + + gdb_run_cmd + + gdb_test "" ".*x=3.*x=4.*x=3.*" "run to resolved dprintf" +} + +clean_restart ${binfile} +gdb_load_shlibs $lib_sl + +# +# Test setting, querying, and modifying pending breakpoints +# + +gdb_test \ + "dprintf pendfunc1, \"x=%d\\n\", x" \ + "Dprintf.*pendfunc1.*pending." \ + "set pending dprintf" \ + ".*Make dprintf pending.*y or \\\[n\\\]. $" \ + "y" + +gdb_test "info break" \ + "Num Type\[ \]+Disp Enb Address\[ \]+What.* +\[0-9\]+\[\t \]+dprintf.*keep y.*PENDING.*pendfunc1.*" \ +"single pending dprintf info" + +gdb_run_cmd + +gdb_test "" ".*x=3.*x=4.*x=3.*" "run to resolved dprintf" |