OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.0/] [gdb/] [testsuite/] [gdb.base/] [remote.exp] - Diff between revs 106 and 107

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 106 Rev 107
#   Copyright (C) 1999 Free Software Foundation, Inc.
#   Copyright (C) 1999 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# 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
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# (at your option) any later version.
#
#
# This program is distributed in the hope that it will be useful,
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Please email any bugs, comments, and/or additions to this file to:
# Please email any bugs, comments, and/or additions to this file to:
# bug-gdb@prep.ai.mit.edu
# bug-gdb@prep.ai.mit.edu
if $tracelevel then {
if $tracelevel then {
    strace $tracelevel
    strace $tracelevel
}
}
set prms_id 0
set prms_id 0
set bug_id 0
set bug_id 0
# test only on a remote target board
# test only on a remote target board
if {! [is_remote target]} {
if {! [is_remote target]} {
    return
    return
}
}
set testfile "remote"
set testfile "remote"
set srcfile ${testfile}.c
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
set binfile ${objdir}/${subdir}/${testfile}
gdb_start
gdb_start
set result [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}]
set result [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}]
if {$result != "" } then {
if {$result != "" } then {
    gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
    gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}
}
#
#
# Part ONE: Check the down load commands
# Part ONE: Check the down load commands
#
#
gdb_test "show download-write-size" \
gdb_test "show download-write-size" \
        "The write size used when downloading a program is 512." \
        "The write size used when downloading a program is 512." \
        "download limit default"
        "download limit default"
gdb_test "set download-write-size" "Argument required.*"
gdb_test "set download-write-size" "Argument required.*"
gdb_test "set download-write-size 0" ""
gdb_test "set download-write-size 0" ""
gdb_test "show download-write-size" \
gdb_test "show download-write-size" \
        "The write size used when downloading a program is unlimited." \
        "The write size used when downloading a program is unlimited." \
        "set download limit - unlimited"
        "set download limit - unlimited"
gdb_test "show remote memory-write-packet-size" \
gdb_test "show remote memory-write-packet-size" \
        "The memory-write-packet-size is 0. Packets are limited to \[0-9\]+ bytes." \
        "The memory-write-packet-size is 0. Packets are limited to \[0-9\]+ bytes." \
        "write-packet default"
        "write-packet default"
gdb_test "set remote memory-write-packet-size" \
gdb_test "set remote memory-write-packet-size" \
        "Argument required .integer, `fixed' or `limited'.\." \
        "Argument required .integer, `fixed' or `limited'.\." \
        "set write-packet - NULL"
        "set write-packet - NULL"
gdb_test "set remote memory-write-packet-size 16" ""
gdb_test "set remote memory-write-packet-size 16" ""
gdb_test "show remote memory-write-packet-size" \
gdb_test "show remote memory-write-packet-size" \
        "The memory-write-packet-size is 16. Packets are limited to 16 bytes." \
        "The memory-write-packet-size is 16. Packets are limited to 16 bytes." \
        "set write-packet - small"
        "set write-packet - small"
gdb_test "set remote memory-write-packet-size 1" ""
gdb_test "set remote memory-write-packet-size 1" ""
gdb_test "show remote memory-write-packet-size" \
gdb_test "show remote memory-write-packet-size" \
        "The memory-write-packet-size is 1. Packets are limited to 16 bytes." \
        "The memory-write-packet-size is 1. Packets are limited to 16 bytes." \
        "set write-packet - very-small"
        "set write-packet - very-small"
#
#
# Part TWO: Check the download behavour
# Part TWO: Check the download behavour
#
#
proc gdb_load_timed {executable downloadsize class writesize} {
proc gdb_load_timed {executable downloadsize class writesize} {
    global test gdb_prompt
    global test gdb_prompt
    set test "timed download `[file tail $executable]' - $downloadsize, $class, $writesize"
    set test "timed download `[file tail $executable]' - $downloadsize, $class, $writesize"
    if {$writesize != ""} then {
    if {$writesize != ""} then {
        gdb_test "set remote memory-write-packet-size $writesize" \
        gdb_test "set remote memory-write-packet-size $writesize" \
                "" "$test - set packet size"
                "" "$test - set packet size"
    }
    }
    if {$downloadsize != ""} then {
    if {$downloadsize != ""} then {
        gdb_test "set download-write-size $downloadsize" \
        gdb_test "set download-write-size $downloadsize" \
                "" "$test - set download size"
                "" "$test - set download size"
    }
    }
    if {$downloadsize != ""} then {
    if {$downloadsize != ""} then {
        send_gdb "set remote memory-write-packet-size $class\n"
        send_gdb "set remote memory-write-packet-size $class\n"
        gdb_expect 5 {
        gdb_expect 5 {
            -re ".*Change the packet size.*$" {
            -re ".*Change the packet size.*$" {
                send_gdb "y\n"
                send_gdb "y\n"
                gdb_expect 5 {
                gdb_expect 5 {
                    -re ".*$gdb_prompt $" {
                    -re ".*$gdb_prompt $" {
                        pass "$test - set write size class"
                        pass "$test - set write size class"
                    }
                    }
                    timeout {
                    timeout {
                        fail "$test - set write size class"
                        fail "$test - set write size class"
                        return
                        return
                    }
                    }
                }
                }
            }
            }
            -re ".*$gdb_prompt $" { }
            -re ".*$gdb_prompt $" { }
            timeout {
            timeout {
                fail "$test - set write size class"
                fail "$test - set write size class"
                return
                return
            }
            }
        }
        }
    }
    }
    set load_begin_time [clock clicks]
    set load_begin_time [clock clicks]
    set result [gdb_load $executable]
    set result [gdb_load $executable]
    set load_end_time [clock clicks]
    set load_end_time [clock clicks]
    if {$result < 0} then { fail "$test - loading executable"; return }
    if {$result < 0} then { fail "$test - loading executable"; return }
    verbose "$test - time [expr ($load_end_time - $load_begin_time) / 1000] ms"
    verbose "$test - time [expr ($load_end_time - $load_begin_time) / 1000] ms"
    pass $test
    pass $test
}
}
gdb_load_timed $binfile {} "" {}
gdb_load_timed $binfile {} "" {}
# Typically about 400-1 bytes can be downloaded
# Typically about 400-1 bytes can be downloaded
gdb_load_timed $binfile 0 "limit" 398
gdb_load_timed $binfile 0 "limit" 398
gdb_load_timed $binfile 0 "limit" 400
gdb_load_timed $binfile 0 "limit" 400
# Absolute max is 16384
# Absolute max is 16384
gdb_load_timed $binfile 0 "fixed" 0
gdb_load_timed $binfile 0 "fixed" 0
gdb_load_timed $binfile 0 "fixed" 16385
gdb_load_timed $binfile 0 "fixed" 16385
# fall back to the default
# fall back to the default
gdb_load_timed $binfile 0 "limit" 0
gdb_load_timed $binfile 0 "limit" 0
#
#
# Part THREE: Check the upload behavour
# Part THREE: Check the upload behavour
#
#
# Carefully check memory around each of the most common packet edge
# Carefully check memory around each of the most common packet edge
# conditions
# conditions
gdb_test "x/8ub random_data" \
gdb_test "x/8ub random_data" \
        ":\[ \t\]+60\[ \t\]+74\[ \t\]+216\[ \t\]+38\[ \t\]+149\[ \t\]+49\[ \t\]+207\[ \t\]+44"
        ":\[ \t\]+60\[ \t\]+74\[ \t\]+216\[ \t\]+38\[ \t\]+149\[ \t\]+49\[ \t\]+207\[ \t\]+44"
gdb_test "x/8ub random_data + 400 - 4" \
gdb_test "x/8ub random_data + 400 - 4" \
        ":\[ \t\]+185\[ \t\]+255\[ \t\]+50\[ \t\]+140\[ \t\]+237\[ \t\]+172\[ \t\]+143\[ \t\]+93"
        ":\[ \t\]+185\[ \t\]+255\[ \t\]+50\[ \t\]+140\[ \t\]+237\[ \t\]+172\[ \t\]+143\[ \t\]+93"
gdb_test "x/8ub random_data + 16384 - 4" \
gdb_test "x/8ub random_data + 16384 - 4" \
        ":\[ \t\]+178\[ \t\]+180\[ \t\]+135\[ \t\]+93\[ \t\]+70\[ \t\]+62\[ \t\]+205\[ \t\]+76"
        ":\[ \t\]+178\[ \t\]+180\[ \t\]+135\[ \t\]+93\[ \t\]+70\[ \t\]+62\[ \t\]+205\[ \t\]+76"
# Read a chunk just larger than the packet size (reduce the packet
# Read a chunk just larger than the packet size (reduce the packet
# size to make life easier)
# size to make life easier)
gdb_test "set remote memory-read-packet-size 16" \
gdb_test "set remote memory-read-packet-size 16" \
        ""
        ""
gdb_test "show remote memory-read-packet-size" \
gdb_test "show remote memory-read-packet-size" \
        "The memory-read-packet-size is 16. Packets are limited to 16 bytes."
        "The memory-read-packet-size is 16. Packets are limited to 16 bytes."
gdb_test "x/17ub random_data" \
gdb_test "x/17ub random_data" \
        ":\[ \t\]+60\[ \t\]+74\[ \t\]+216\[ \t\]+38\[ \t\]+149\[ \t\]+49\[ \t\]+207\[ \t\]+44.*:\[ \t\]+124\[ \t\]+38\[ \t\]+93\[ \t\]+125\[ \t\]+232\[ \t\]+67\[ \t\]+228\[ \t\]+56.*:\[ \t\]+161"
        ":\[ \t\]+60\[ \t\]+74\[ \t\]+216\[ \t\]+38\[ \t\]+149\[ \t\]+49\[ \t\]+207\[ \t\]+44.*:\[ \t\]+124\[ \t\]+38\[ \t\]+93\[ \t\]+125\[ \t\]+232\[ \t\]+67\[ \t\]+228\[ \t\]+56.*:\[ \t\]+161"
gdb_exit
gdb_exit
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.