From 5c44784c11ecc8febfff615b88496c56c9ad5274 Mon Sep 17 00:00:00 2001 From: Jason Molenda Date: Tue, 2 Nov 1999 04:44:47 +0000 Subject: import gdb-1999-11-01 snapshot --- gdb/testsuite/ChangeLog | 11 +++++ gdb/testsuite/gdb.base/annota1.c | 6 +++ gdb/testsuite/gdb.base/annota1.exp | 48 ++++++++++++++++++++++ gdb/testsuite/gdb.base/remote.c | 26 ++++++++++++ gdb/testsuite/gdb.base/remote.exp | 83 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 174 insertions(+) create mode 100644 gdb/testsuite/gdb.base/remote.c create mode 100644 gdb/testsuite/gdb.base/remote.exp (limited to 'gdb/testsuite') diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 06e699f..28b724c 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,14 @@ +1999-11-01 Stan Shebs + + From Jimmy Guo : + * gdb.base/annota1.exp: Add tests for annotate ignore count change. + * gdb.base/annota1.c: Add code for tests to work with. + +1999-10-26 Frank Ch. Eigler + + * gdb.base/remote.exp: New test for remote downloading settings. + * gdb.base/remote.c: New file with large .data. + 1999-10-18 Jim Blandy * gdb.threads/linux-dp.c, gdb.threads/linux-dp.exp: New test suite diff --git a/gdb/testsuite/gdb.base/annota1.c b/gdb/testsuite/gdb.base/annota1.c index 7d423e0..6a13ee9 100644 --- a/gdb/testsuite/gdb.base/annota1.c +++ b/gdb/testsuite/gdb.base/annota1.c @@ -39,6 +39,12 @@ main () printf ("value is %d\n", value); printf ("my_array[2] is %d\n", my_array[2]); + + { + int i; + for (i = 0; i < 5; i++) + value++; + } return 0; } diff --git a/gdb/testsuite/gdb.base/annota1.exp b/gdb/testsuite/gdb.base/annota1.exp index 5ecdcb3..9b4fce6 100644 --- a/gdb/testsuite/gdb.base/annota1.exp +++ b/gdb/testsuite/gdb.base/annota1.exp @@ -359,6 +359,54 @@ gdb_expect { timeout { fail "re-run (timeout)" } } +# +# Test that breakpoints-invalid is issued once and only once for +# breakpoint ignore count changes, after annotation stopped. +# +send_gdb "break 46\n" +gdb_expect { + -re "Breakpoint 5 at $hex: file .*$srcfile, line 46.*$gdb_prompt$" { + pass "break at 46" + } + -re ".*$gdb_prompt$" { fail "break at 46" } + timeout { fail "break at 46 (timeout)" } +} + +send_gdb "ignore 5 4\n" +gdb_expect { + -re "Will ignore next 4 crossings of breakpoint 5.*$gdb_prompt$" { + pass "ignore 5 4" + } + -re ".*$gdb_prompt$" { fail "ignore 5 4" } + timeout { fail "ignore 5 4 (timeout)" } +} + +send_gdb "continue\n" +gdb_expect { + -re ".*$srcfile:46:.*\032\032stopped\r\n\r\n\032\032breakpoints-invalid\r\n$gdb_prompt$" { + pass "annotate ignore count change" + } + -re ".*$gdb_prompt$" { fail "annotate ignore count change" } + timeout { fail "annotate ignore count change (timeout)" } +} + +# check that ignore command is working, or the above can provide +# misleading assurance ... + +send_gdb "next\n" +gdb_expect { + -re "$gdb_prompt$" {} + timeout { fail "next to exit loop" } +} + +send_gdb "next\n" +gdb_expect { + -re ".*$srcfile:49:.*$gdb_prompt$" { + pass "breakpoint ignore count" + } + -re ".*$gdb_prompt$" { fail "breakpoint ignore count" } + timeout { fail "breakpoint ignore count (timeout)" } +} # # Send a signal that is not handled; test: diff --git a/gdb/testsuite/gdb.base/remote.c b/gdb/testsuite/gdb.base/remote.c new file mode 100644 index 0000000..b297e5e --- /dev/null +++ b/gdb/testsuite/gdb.base/remote.c @@ -0,0 +1,26 @@ +#include +#include + +/************************************************************************** + * TESTS : + * -- downloading of a rather large executable + ***************************************************************************/ + + +/* A large array in .data. If RLE compression becomes available during + downloads, this would have to become a bunch of real random data. + Here's a quick way of generating such a bunch: + +yes | awk '{printf ("%4d,", rand()*1000);}' | fold -w80 -s | head -4096 + +*/ + +unsigned long random_data[65536] = { 1 }; + +int +main() +{ + printf ("%lu\n", random_data [rand() % + (sizeof (random_data) / + sizeof (random_data [0]))]); +} diff --git a/gdb/testsuite/gdb.base/remote.exp b/gdb/testsuite/gdb.base/remote.exp new file mode 100644 index 0000000..4c8b415 --- /dev/null +++ b/gdb/testsuite/gdb.base/remote.exp @@ -0,0 +1,83 @@ +# Copyright (C) 1999 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 2 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-gdb@prep.ai.mit.edu + +if $tracelevel then { + strace $tracelevel +} + +set prms_id 0 +set bug_id 0 + + +# test only on a remote target board +if {! [is_remote target]} { + return +} + + +set testfile "remote" +set srcfile ${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} + + +proc gdb_load_timed {executable writesize} { + global test gdb_prompt + set test "timed download `[file tail $executable]' ($writesize)" + + if {$writesize != ""} then { + send_gdb "set remotewritesize $writesize\n" + gdb_expect 5 { + -re ".*$gdb_prompt $" { } + timeout { fail "$test - setting remotewritesize" ; return } + } + } + + set load_begin_time [clock clicks] + set result [gdb_load $executable] + set load_end_time [clock clicks] + if {$result < 0} then { fail "$test - loading executable"; return } + verbose "$test - time [expr ($load_end_time - $load_begin_time) / 1000] ms" + pass $test +} + + + +# tests + +gdb_start + +set result [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] +if {$result != "" } then { + gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." +} + +gdb_load_timed $binfile {} +gdb_load_timed $binfile 50 +gdb_load_timed $binfile 100 +gdb_load_timed $binfile 200 +gdb_load_timed $binfile 400 + +# extra tests for capable targets +if {[target_info gdb,big_rx_buffers] != ""} then { + gdb_load_timed $binfile 800 + gdb_load_timed $binfile 8000 + gdb_load_timed $binfile 80000 +} + +gdb_exit -- cgit v1.1