aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>1999-11-02 04:44:47 +0000
committerJason Molenda <jmolenda@apple.com>1999-11-02 04:44:47 +0000
commit5c44784c11ecc8febfff615b88496c56c9ad5274 (patch)
tree74f9079f5b0ddae1182abf087af8adc02103e149 /gdb/testsuite
parent9503fd8735ec438fcb2fca34afa276e3e6ca94f5 (diff)
downloadgdb-5c44784c11ecc8febfff615b88496c56c9ad5274.zip
gdb-5c44784c11ecc8febfff615b88496c56c9ad5274.tar.gz
gdb-5c44784c11ecc8febfff615b88496c56c9ad5274.tar.bz2
import gdb-1999-11-01 snapshot
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/ChangeLog11
-rw-r--r--gdb/testsuite/gdb.base/annota1.c6
-rw-r--r--gdb/testsuite/gdb.base/annota1.exp48
-rw-r--r--gdb/testsuite/gdb.base/remote.c26
-rw-r--r--gdb/testsuite/gdb.base/remote.exp83
5 files changed, 174 insertions, 0 deletions
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 <shebs@andros.cygnus.com>
+
+ From Jimmy Guo <guo@cup.hp.com>:
+ * 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 <fche@cygnus.com>
+
+ * gdb.base/remote.exp: New test for remote downloading settings.
+ * gdb.base/remote.c: New file with large .data.
+
1999-10-18 Jim Blandy <jimb@zwingli.cygnus.com>
* 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 <stdio.h>
+#include <stdlib.h>
+
+/**************************************************************************
+ * 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