summaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base/remote.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.base/remote.exp')
-rw-r--r--gdb/testsuite/gdb.base/remote.exp104
1 files changed, 82 insertions, 22 deletions
diff --git a/gdb/testsuite/gdb.base/remote.exp b/gdb/testsuite/gdb.base/remote.exp
index 4c8b415452e..70e97cfc8b3 100644
--- a/gdb/testsuite/gdb.base/remote.exp
+++ b/gdb/testsuite/gdb.base/remote.exp
@@ -35,16 +35,85 @@ set testfile "remote"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
+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."
+}
+
+
+#
+# Part ONE: Check the down load commands
+#
+
+gdb_test "show download-write-size" \
+ "The write size used when downloading a program is 512." \
+ "download limit default"
+
+gdb_test "set download-write-size" "Argument required.*"
+
+gdb_test "set download-write-size 0" ""
+gdb_test "show download-write-size" \
+ "The write size used when downloading a program is unlimited." \
+ "set download limit - unlimited"
+
+gdb_test "show remote memory-write-packet-size" \
+ "The memory-write-packet-size is 0. Packets are limited to \[0-9\]+ bytes." \
+ "write-packet default"
+
+gdb_test "set remote memory-write-packet-size" \
+ "Argument required .integer, `fixed' or `limited'.\." \
+ "set write-packet - NULL"
-proc gdb_load_timed {executable writesize} {
+gdb_test "set remote memory-write-packet-size 16" ""
+gdb_test "show remote memory-write-packet-size" \
+ "The memory-write-packet-size is 16. Packets are limited to 16 bytes." \
+ "set write-packet - small"
+
+gdb_test "set remote memory-write-packet-size 1" ""
+gdb_test "show remote memory-write-packet-size" \
+ "The memory-write-packet-size is 1. Packets are limited to 16 bytes." \
+ "set write-packet - very-small"
+
+#
+# Part TWO: Check the download behavour
+#
+
+proc gdb_load_timed {executable downloadsize class writesize} {
global test gdb_prompt
- set test "timed download `[file tail $executable]' ($writesize)"
+ set test "timed download `[file tail $executable]' - $downloadsize, $class, $writesize"
if {$writesize != ""} then {
- send_gdb "set remotewritesize $writesize\n"
+ gdb_test "set remote memory-write-packet-size $writesize" \
+ "" "$test - set packet size"
+ }
+
+ if {$downloadsize != ""} then {
+ gdb_test "set download-write-size $downloadsize" \
+ "" "$test - set download size"
+ }
+
+ if {$downloadsize != ""} then {
+ send_gdb "set remote memory-write-packet-size $class\n"
gdb_expect 5 {
+ -re ".*Change the packet size.*$" {
+ send_gdb "y\n"
+ gdb_expect 5 {
+ -re ".*$gdb_prompt $" {
+ pass "$test - set write size class"
+ }
+ timeout {
+ fail "$test - set write size class"
+ return
+ }
+ }
+ }
-re ".*$gdb_prompt $" { }
- timeout { fail "$test - setting remotewritesize" ; return }
+ timeout {
+ fail "$test - set write size class"
+ return
+ }
}
}
@@ -58,26 +127,17 @@ proc gdb_load_timed {executable writesize} {
-# tests
+gdb_load_timed $binfile {} "" {}
-gdb_start
+# Typically about 400 bytes can be downloaded
+gdb_load_timed $binfile 0 "limit" 399
+gdb_load_timed $binfile 0 "limit" 401
-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."
-}
+# fall back to the default
+gdb_load_timed $binfile 0 "limit" 0
-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
-}
+# Absolute max is 16384
+gdb_load_timed $binfile 0 "fixed" 0
+gdb_load_timed $binfile 0 "fixed" 16385
gdb_exit