From: Jim Kingdon Date: Tue, 21 Mar 1995 20:17:49 +0000 (+0000) Subject: * gdb.base/{corefile.exp,default.exp}: Make names of "up" tests unique. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1d30b9482218ea3926ae7b996c6d97a1b660a32c;p=binutils-gdb.git * gdb.base/{corefile.exp,default.exp}: Make names of "up" tests unique. --- diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index cc6896f0ead..bdb060ed5c0 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +Tue Mar 21 12:14:12 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdb.base/{corefile.exp,default.exp}: Make names of "up" tests unique. + Mon Mar 20 10:08:17 1995 Jeff Law (law@snake.cs.utah.edu) * gdb.base/recurse.exp: Update gdb_test invocation to use new diff --git a/gdb/testsuite/gdb.base/default.exp b/gdb/testsuite/gdb.base/default.exp new file mode 100644 index 00000000000..3705e614a37 --- /dev/null +++ b/gdb/testsuite/gdb.base/default.exp @@ -0,0 +1,2413 @@ +# Start with a fresh gdb + +gdb_exit +gdb_start + +# +# test default actions of gdb commands +# + +load_lib gdb.exp + +gdb_test "add-symbol-file" "add-symbol-file takes a file name and an address" + +setup_xfail "mips-idt-*" +send "attach\n" +expect { + -re "Argument required .(process-id|program) to attach.*$prompt $"\ + { pass "attach" } + -re "You can't do that when your target is `None'.*$prompt $"\ + { pass "attach" } + -re "Don't know how to attach. Try \"help target\"..*$prompt $"\ + { pass "attach" } + -re "Kill it. .y or n." { + send "y\n" + exp_continue + } + -re "$prompt $" { fail "attach" } + timeout { fail "(timeout) attach" } +} + +# FIXME: attach kills the udi connection +if [istarget "a29k-*-udi"] then { + gdb_exit + gdb_start +} + +gdb_test "break" "No default breakpoint address now." +foreach i "b br bre brea" { + gdb_test $i "No default breakpoint address now." "break \"$i\" abbreviation" + } + +setup_xfail "mips-idt-*" "a29k-*-udi" "h8300-*-hms" +gdb_test "backtrace" "No stack." +foreach i "bt ba bac" { + setup_xfail "mips-idt-*" "a29k-*-udi" "h8300-*-hms" + gdb_test $i "No stack." "backtrace \"$i\" abbreviation" +} + +# This works on the MIPS IDT board, but confuses future tests. +if ![istarget "mips-idt-*"] then { + setup_xfail "a29k-*-udi" + gdb_test "continue" "The program is not being run." + setup_xfail "a29k-*-udi" + gdb_test "c" "The program is not being run." "continue \"c\" abbreviation" +} + +# FIXME: continue kills the udi connection +if [istarget "a29k-*-udi"] then { + gdb_exit + gdb_start +} + +#test call +send "call\n" +expect { + -re "The history is empty..*$prompt $"\ + { pass "call" } + -re ".*$prompt $" { fail "call" } + timeout { fail "(timeout) call" } + } + + +#test catch +send "catch\n" +expect { + -re "No selected frame..*$prompt $"\ + { pass "catch" } + -re ".*$prompt $" { fail "catch" } + timeout { fail "(timeout) catch" } + } + + +#test cd +send "cd\n" +expect { + -re "Argument required .new working directory.*$prompt $"\ + { pass "cd" } + -re ".*$prompt $" { fail "cd" } + timeout { fail "(timeout) cd" } + } + + +#test clear +send "clear\n" +expect { + -re "No source file specified..*$prompt $"\ + { pass "clear" } + -re ".*$prompt $" { fail "clear" } + timeout { fail "(timeout) clear" } + } + + +#test commands +send "commands\n" +expect { + -re "No breakpoint number 0..*$prompt $"\ + { pass "commands" } + -re ".*$prompt $" { fail "commands" } + timeout { fail "(timeout) commands" } + } + + +#test condition +send "condition\n" +expect { + -re "Argument required .breakpoint number.*$prompt $"\ + { pass "condition" } + -re ".*$prompt $" { fail "condition" } + timeout { fail "(timeout) condition" } + } + + +#test core-file +send "core-file\n" +expect { + -re "No core file now..*$prompt $"\ + { pass "core-file" } + -re "GDB can't read core files on this machine..*$prompt $"\ + { pass "core-file" } + -re ".*$prompt $" { fail "core-file" } + timeout { fail "(timeout) core-file" } + } + + +#test delete "d" abbreviation +send "d\n" +expect { + -re "$prompt $"\ + { pass "delete \"d\" abbreviation" } + timeout { fail "(timeout) delete \"d\" abbreviation" } + } + + +#test delete +send "delete\n" +expect { + -re "$prompt $"\ + { pass "delete" } + timeout { fail "(timeout) delete" } + } + + +#test define +send "define\n" +expect { + -re "Argument required \[(\]name of command to define\[)\]..*$prompt $"\ + { pass "define" } + timeout { fail "(timeout) define" } + } + + +#test delete breakpoints +send "delete breakpoints\n" +expect { + -re "$prompt $"\ + { pass "delete breakpoints" } + timeout { fail "(timeout) delete breakpoints" } + } + + +#test delete display +# FIXME -- need to dump full output to detailed log +send "delete display\n" +expect { + -re "delete display.*Delete all auto-display expressions.*y or n. $"\ + { send "y\n" + expect { + -re "$prompt $"\ + { pass "delete display prompt" } + timeout { fail "(timeout) delete display prompt" } + } + } + timeout { fail "(timeout) delete display prompt" } + + } + + +#test detach +gdb_test "detach" "" +#send "detach\n" +#expect { +# -re "$prompt $"\ +# { pass "detach" } +# timeout { fail "(timeout) detach" } +# } + +# FIXME: continue kills the udi connection +if [istarget "a29k-*-udi"] then { + gdb_exit + gdb_start +} +if [istarget "h8300-*-hms"] then { + gdb_exit + gdb_start +} + +#test directory +# FIXME -- need to dump full output to detailed log +send "directory\n" +expect { + -re "Reinitialize source path to empty.*y or n. $"\ + { send "y\n" + expect { + -re "Source directories searched: .cdir:.cwd.*$prompt $"\ + { pass "directory prompt" } + timeout { fail "(timeout) directory prompt" } + } + } + } + + +#test disable "dis" abbreviation +send "dis\n" +expect { + -re "$prompt $"\ + { pass "disable \"dis\" abbreviation" } + timeout { fail "(timeout) disable \"dis\" abbreviation" } + } + + +#test disable "disa" abbreviation +send "disa\n" +expect { + -re "$prompt $"\ + { pass "disable \"disa\" abbreviation" } + timeout { fail "(timeout) disable \"disa\" abbreviation" } + } + + +#test disable +send "disable\n" +expect { + -re "$prompt $"\ + { pass "disable" } + timeout { fail "(timeout) disable" } + } + + +#test disable breakpoints +send "disable breakpoints\n" +expect { + -re "$prompt $"\ + { pass "disable breakpoints" } + timeout { fail "(timeout) disable breakpoints" } + } + + +#test disable display +send "disable display\n" +expect { + -re "$prompt $"\ + { pass "disable display" } + timeout { fail "(timeout) disable display" } + } + + +#test disassemble +send "disassemble\n" +expect { + -re "No frame selected..*$prompt $"\ + { pass "disassemble" } + -re ".*$prompt $" { fail "disassemble" } + timeout { fail "(timeout) disassemble" } + } + + +#test display +send "display\n" +expect { + -re "$prompt $"\ + { pass "display" } + timeout { fail "(timeout) display" } + } + + +#test do +send "do\n" +expect { + -re "No stack..*$prompt $"\ + { pass "do" } + -re ".*$prompt $" { fail "do" } + timeout { fail "(timeout) do" } + } + + +#test document +send "document\n" +expect { + -re "Argument required .name of command to define.*$prompt $"\ + { pass "document" } + -re ".*$prompt $" { fail "document" } + timeout { fail "(timeout) document" } + } + + +#test down +send "down\n" +expect { + -re "No stack.*$prompt $"\ + { pass "down" } + -re ".*$prompt $" { fail "down" } + timeout { fail "(timeout) down" } + } + + +#test down-silently +send "down-silently\n" +expect { + -re "No stack..*$prompt $"\ + { pass "down-silently" } + -re ".*$prompt $" { fail "down-silently" } + timeout { fail "(timeout) down-silently" } + } + + +#test echo +send "echo\n" +expect { + -re "$prompt $"\ + { pass "echo" } + timeout { fail "(timeout) echo" } + } + + +#test enable breakpoints delete +send "enable breakpoints delete\n" +expect { + -re "Argument required .one or more breakpoint numbers.*$prompt $"\ + { pass "enable breakpoints delete" } + -re ".*$prompt $" { fail "enable breakpoints delete" } + timeout { fail "(timeout) enable breakpoints delete" } + } + + +#test enable breakpoints once +send "enable breakpoints once\n" +expect { + -re "Argument required .one or more breakpoint numbers.*$prompt $"\ + { pass "enable breakpoints once" } + -re ".*$prompt $" { fail "enable breakpoints once" } + timeout { fail "(timeout) enable breakpoints once" } + } + + +#test enable breakpoints +send "enable breakpoints\n" +expect { + -re "$prompt $"\ + { pass "enable breakpoints" } + timeout { fail "(timeout) enable breakpoints" } + } + + +#test enable delete +send "enable delete\n" +expect { + -re "Argument required .one or more breakpoint numbers.*$prompt $"\ + { pass "enable delete" } + -re ".*$prompt $" { fail "enable delete" } + timeout { fail "(timeout) enable delete" } + } + + +#test enable display +send "enable display\n" +expect { + -re "$prompt $"\ + { pass "enable display" } + timeout { fail "(timeout) enable display" } + } + + +#test enable once +send "enable once\n" +expect { + -re "Argument required .one or more breakpoint numbers.*$prompt $"\ + { pass "enable once" } + -re ".*$prompt $" { fail "enable once" } + timeout { fail "(timeout) enable once" } + } + + +#test enable +send "enable\n" +expect { + -re "$prompt $"\ + { pass "enable" } + timeout { fail "(timeout) enable" } + } + + +#test exec-file +send "exec-file\n" +expect { + -re "No exec file now..*$prompt $" { + pass "exec-file" + } + -re "exec-file.*A program is being debugged already. Kill it. .y or n.*$" { + send "n\n" + if $verbose>1 then { + send_user "\tDidn't kill program being debugged\n" + } + expect -re "$prompt $" { } + pass "exec-file" + } + -re "$prompt $" { fail "exec-file" } + timeout { fail "(timeout) exec-file" } + } + + +#test frame "f" abbreviation +setup_xfail "a29k-*-udi" +send "f\n" +expect { + -re "No stack..*$prompt $"\ + { pass "frame \"f\" abbreviation" } + -re ".*$prompt $" { fail "frame \"f\" abbreviation" } + timeout { fail "(timeout) frame \"f\" abbreviation" } + } + + +#test frame +setup_xfail "a29k-*-udi" +send "frame\n" +expect { + -re "No stack..*$prompt $"\ + { pass "frame" } + -re ".*$prompt $" { fail "frame" } + timeout { fail "(timeout) frame" } + } + + +#test fg +setup_xfail "a29k-*-udi" +send "fg\n" +expect { + -re "The program is not being run..*$prompt $"\ + { pass "fg" } + -re ".*$prompt $" { fail "fg" } + timeout { fail "(timeout) fg" } + } + +# FIXME: fg kills the udi connection +if [istarget "a29k-*-udi"] then { + gdb_exit + gdb_start +} + +#test file +send "file\n" +expect { + -re "No exec file now..*$prompt $"\ + { pass "file" } + -re ".*A program is being debugged already. Kill it. .y or n.*$" { + send "n\n" + if $verbose>1 then { + send_user "\t\tDidn't kill program being debugged\n" + } + expect -re "$prompt $" { } + pass "file" + } + -re ".*$prompt $" { fail "file" } + timeout { fail "(timeout) file" } + } + + +#test finish +setup_xfail "a29k-*-udi" +send "finish\n" +expect { + -re "The program is not running..*$prompt $"\ + { pass "finish" } + -re ".*$prompt $" { fail "finish" } + timeout { fail "(timeout) finish" } + } + + +#test forward-search +# The message here comes from the regexp library, not gdb, and so can +# vary on different systems. +send "forward-search\n" +expect { + -re "No previous regular expression.*$prompt $"\ + { pass "forward-search" } + -re "There is no previous regular expression.*$prompt $"\ + { pass "forward-search" } + -re ".*$prompt $" { fail "forward-search" } + timeout { fail "(timeout) forward-search" } + } + + +#test help "h" abbreviation +send "h\n" +expect { + -re "List of classes of commands:.* +running -- Running the program.* +stack -- Examining the stack.* +data -- Examining data.* +breakpoints -- Making program stop at certain points.* +files -- Specifying and examining files.* +status -- Status inquiries.* +support -- Support facilities.* +user-defined -- User-defined commands.* +aliases -- Aliases of other commands.* +obscure -- Obscure features.* +Type \"help\" followed by a class name for a list of commands in that class..* +Type \"help\" followed by command name for full documentation..* +Command name abbreviations are allowed if unambiguous..*$prompt $"\ + { pass "help \"h\" abbreviation" } + -re ".*$prompt $" { fail "help \"h\" abbreviation" } + timeout { fail "(timeout) help \"h\" abbreviation" } + } + + +#test help +send "help\n" +expect { + -re "List of classes of commands:.* +running -- Running the program.* +stack -- Examining the stack.* +data -- Examining data.* +breakpoints -- Making program stop at certain points.* +files -- Specifying and examining files.* +status -- Status inquiries.* +support -- Support facilities.* +user-defined -- User-defined commands.* +aliases -- Aliases of other commands.* +obscure -- Obscure features.* +Type \"help\" followed by a class name for a list of commands in that class..* +Type \"help\" followed by command name for full documentation..* +Command name abbreviations are allowed if unambiguous..*$prompt $"\ + { pass "help" } + -re ".*$prompt $" { fail "help" } + timeout { fail "(timeout) help" } + } + + +#test handle +send "handle\n" +expect { + -re "Argument required .signal to handle.*$prompt $"\ + { pass "handle" } + -re ".*$prompt $" { fail "handle" } + timeout { fail "(timeout) handle" } + } + + +#test info "i" abbreviation +send "i\n" +expect { + -re "\"info\" must be followed by the name of an info command..* +List of info subcommands:.* +Type \"help info\" followed by info subcommand name for full documentation..* +Command name abbreviations are allowed if unambiguous..*$prompt $"\ + { pass "info \"i\" abbreviation" } + -re ".*$prompt $" { fail "info \"i\" abbreviation" } + timeout { fail "(timeout) info \"i\" abbreviation" } + } + + +#test info +send "info\n" +expect { + -re "\"info\" must be followed by the name of an info command..* +List of info subcommands:.* +Type \"help info\" followed by info subcommand name for full documentation..* +Command name abbreviations are allowed if unambiguous..*$prompt $"\ + { pass "info" } + -re ".*$prompt $" { fail "info" } + timeout { fail "(timeout) info" } + } + + +#test ignore +send "ignore\n" +expect { + -re "Argument required .a breakpoint number.*$prompt $"\ + { pass "ignore" } + -re ".*$prompt $" { fail "ignore" } + timeout { fail "(timeout) ignore" } + } + + +#test info address +send "info address\n" +expect { + -re "Argument required..*$prompt $"\ + { pass "info address" } + -re ".*$prompt $" { fail "info address" } + timeout { fail "(timeout) info address" } + } + + +#test info all-registers +setup_xfail "a29k-*-udi" +send "info all-registers\n" +expect { + -re "The program has no registers now..*$prompt $"\ + { pass "info all-registers" } + -re ".*$prompt $" { fail "info all-registers" } + timeout { fail "(timeout) info all-registers" } + } + + +#test info args +send "info args\n" +expect { + -re "No frame selected..*$prompt $"\ + { pass "info args" } + -re ".*$prompt $" { fail "info args" } + timeout { fail "(timeout) info args" } + } + + +#test info bogus-gdb-command +send "info bogus-gdb-command\n" +expect { + -re "Undefined info command: \"bogus-gdb-command\". Try \"help info\"..*$prompt $"\ + { pass "info bogus-gdb-command" } + -re ".*$prompt $" { fail "info bogus-gdb-command" } + timeout { fail "(timeout) info bogus-gdb-command" } + } + + +#test info breakpoints +send "info breakpoints\n" +expect { + -re "No breakpoints or watchpoints..*$prompt $"\ + { pass "info breakpoints" } + -re ".*$prompt $" { fail "info breakpoints" } + timeout { fail "(timeout) info breakpoints" } + } + + +#test info catch +send "info catch\n" +expect { + -re "No frame selected..*$prompt $"\ + { pass "info catch" } + -re ".*$prompt $" { fail "info catch" } + timeout { fail "(timeout) info catch" } + } + + +#test info copying +# FIXME -- doesn't work worth a shit +#send "info copying\n" +#expect { +# -re "GNU GENERAL PUBLIC LICENSE.*\ +#of preserving the free status of all derivatives of our free software and.*\ +#of promoting the sharing and reuse of software generally..*$prompt $"\ +# { pass "info copying" } +# timeout { fail "(timeout) info copying" } +# } +# +# + +#test info display +send "info display\n" +expect { + -re "There are no auto-display expressions now..*$prompt $"\ + { pass "info display" } + -re ".*$prompt $" { fail "info display" } + timeout { fail "(timeout) info display" } + } + + +#test info frame "f" abbreviation +send "info f\n" +expect { + -re "No stack..*$prompt $"\ + { pass "info frame \"f\" abbreviation" } + -re "No selected frame..*$prompt $"\ + { pass "info frame \"f\" abbreviation" } + -re ".*$prompt $" { fail "info frame \"f\" abbreviation" } + timeout { fail "(timeout) info frame \"f\" abbreviation" } + } + + +#test info frame +send "info frame\n" +expect { + -re "No stack..*$prompt $"\ + { pass "info frame" } + -re "No selected frame..*$prompt $"\ + { pass "info frame" } + -re ".*$prompt $" { fail "info frame" } + timeout { fail "(timeout) info frame" } + } + + +#test info files +send "info files\n" +expect { + -re "$prompt $"\ + { pass "info files" } + timeout { fail "(timeout) info files" } + } + + +#test info float +send "info float\n" +expect { + -re "No floating point info available for this processor..*$prompt $"\ + { pass "info float" } + -re ".*$prompt $" { fail "info float" } + timeout { fail "(timeout) info float" } + } + + +#test info functions +send "info functions\n" +expect { + -re "All defined functions:.*$prompt $"\ + { pass "info functions" } + -re ".*$prompt $" { fail "info functions" } + timeout { fail "(timeout) info functions" } + } + +gdb_test "info line" "No line number information.*" "info line" + +#test info locals +send "info locals\n" +expect { + -re "No frame selected..*$prompt $"\ + { pass "info locals" } + -re ".*$prompt $" { fail "info locals" } + timeout { fail "(timeout) info locals" } + } + + +#test info program +setup_xfail "a29k-*-udi" +send "info program\n" +expect { + -re "The program being debugged is not being run..*$prompt $"\ + { pass "info program" } + -re ".*$prompt $" { fail "info program" } + timeout { fail "(timeout) info program" } + } + + +#test info registers +setup_xfail "a29k-*-udi" +send "info registers\n" +expect { + -re "The program has no registers now..*$prompt $"\ + { pass "info registers" } + -re ".*$prompt $" { fail "info registers" } + timeout { fail "(timeout) info registers" } + } + + +#test info stack "s" abbreviation +setup_xfail "a29k-*-udi" +send "info s\n" +expect { + -re "No stack..*$prompt $"\ + { pass "info stack \"s\" abbreviation" } + -re ".*$prompt $" { fail "info stack \"s\" abbreviation" } + timeout { fail "(timeout) info stack \"s\" abbreviation" } + } + + +#test info stack +setup_xfail "a29k-*-udi" +send "info stack\n" +expect { + -re "No stack..*$prompt $"\ + { pass "info stack" } + -re ".*$prompt $" { fail "info stack" } + timeout { fail "(timeout) info stack" } + } + + +#test info set +# FIXME -- needs to match the entire output +send "info set\n" +expect { + -re "confirm: Whether to confirm potentially dangerous operations is on..* +history filename: The filename in which to record the command history is .* +listsize: Number of source lines gdb will list by default is 10..*$prompt $"\ + { pass "info set" } + -re "\n$prompt $" { fail "info set" } + timeout { fail "(timeout) info set" } + } + + +#test info source +send "info source\n" +expect { + -re "No current source file..*$prompt $"\ + { pass "info source" } + -re ".*$prompt $" { fail "info source" } + timeout { fail "(timeout) info source" } + } + + +#test info sources +send "info sources\n" +expect { + -re "No symbol table is loaded. Use the \"file\" command..*$prompt $"\ + { pass "info sources" } + -re ".*$prompt $" { fail "info sources" } + timeout { fail "(timeout) info sources" } + } + + +#test info target +send "info target\n" +expect { + -re "$prompt $"\ + { pass "info target" } + timeout { fail "(timeout) info target" } + } + + +#test info terminal +send "info terminal\n" +expect { + -re "No saved terminal information..*$prompt $"\ + { pass "info terminal" } + -re ".*$prompt $" { fail "info terminal" } + timeout { fail "(timeout) info terminal" } + } + + +#test info types +send "info types\n" +expect { + -re "All defined types:.*$prompt $"\ + { pass "info types" } + -re ".*$prompt $" { fail "info types" } + timeout { fail "(timeout) info types" } + } + + +#test info variables +send "info variables\n" +expect { + -re "All defined variables:.*$prompt $"\ + { pass "info variables" } + -re ".*$prompt $" { fail "info variables" } + timeout { fail "(timeout) info variables" } + } + + +#test info warranty +send "info warranty\n" +expect { + -re "NO WARRANTY.* + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY.* +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN.* +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES.* +PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED.* +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF.* +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS.* +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE.* +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,.* +REPAIR OR CORRECTION..* + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING.* +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR.* +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,.* +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING.* +OUT OF THE USE OR INABILITY TO USE THE PROGRAM .INCLUDING BUT NOT LIMITED.* +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY.* +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER.* +PROGRAMS., EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE.* +POSSIBILITY OF SUCH DAMAGES..*$prompt $"\ + { pass "info warranty" } + -re ".*$prompt $" { fail "info warranty" } + timeout { fail "(timeout) info warranty" } + } + + +#test info watchpoints +send "info watchpoints\n" +expect { + -re "No breakpoints or watchpoints..*$prompt $"\ + { pass "info watchpoints" } + -re ".*$prompt $" { fail "info watchpoints" } + timeout { fail "(timeout) info watchpoints" } + } + + +#test inspect +send "inspect\n" +expect { + -re "The history is empty..*$prompt $"\ + { pass "inspect" } + -re ".*$prompt $" { fail "inspect" } + timeout { fail "(timeout) inspect" } + } + + +#test jump +setup_xfail "a29k-*-udi" +send "jump\n" +expect { + -re "The program is not being run..*$prompt $"\ + { pass "jump" } + -re ".*$prompt $" { fail "jump" } + timeout { fail "(timeout) jump" } + } + + +#test kill +send "kill\n" +expect { + -re "The program is not being run..*$prompt $"\ + { pass "kill" } + -re ".*$prompt $" { fail "kill" } + timeout { fail "(timeout) kill" } + } + + +#test list "l" abbreviation +send "l\n" +expect { + -re "No symbol table is loaded. Use the \"file\" command..*$prompt $"\ + { pass "list \"l\" abbreviation" } + -re ".*$prompt $" { fail "list \"l\" abbreviation" } + timeout { fail "(timeout) list \"l\" abbreviation" } + } + + +#test list +send "list\n" +expect { + -re "No symbol table is loaded. Use the \"file\" command..*$prompt $"\ + { pass "list" } + -re ".*$prompt $" { fail "list" } + timeout { fail "(timeout) list" } + } + + +#test load +# The ``takes a file name'' case is for vxgdb. +# The ``Use the "file" command'' case is for newer GDB versions which try +# to deduce the filename from the exec file. +send "load\n" +expect { + -re "You can't do that when your target is `None'.*$prompt $"\ + { pass "load" } + -re "The load command takes a file name.*$prompt $"\ + { pass "load" } + -re "Must specify at least a file name with the load command.*$prompt $"\ + { pass "load" } + -re "Use the .file. or .exec-file. command.*$prompt $"\ + { pass "load" } + -re ".*$prompt $" { fail "load" } + timeout { fail "(timeout) load" } + } + + +#test next "n" abbreviation +setup_xfail "a29k-*-udi" +send "n\n" +expect { + -re "The program is not being run..*$prompt $"\ + { pass "next \"n\" abbreviation" } + -re ".*$prompt $" { fail "next \"n\" abbreviation" } + timeout { fail "(timeout) next \"n\" abbreviation" } + } + + +#test next +setup_xfail "a29k-*-udi" +send "next\n" +expect { + -re "The program is not being run..*$prompt $"\ + { pass "next" } + -re ".*$prompt $" { fail "next" } + timeout { fail "(timeout) next" } + } + + +#test nexti "ni" abbreviation +setup_xfail "a29k-*-udi" +send "ni\n" +expect { + -re "The program is not being run..*$prompt $"\ + { pass "nexti \"ni\" abbreviation" } + -re ".*$prompt $" { fail "nexti \"ni\" abbreviation" } + timeout { fail "(timeout) nexti \"ni\" abbreviation" } + } + + +#test nexti +setup_xfail "a29k-*-udi" +send "nexti\n" +expect { + -re "The program is not being run..*$prompt $"\ + { pass "nexti" } + -re ".*$prompt $" { fail "nexti" } + timeout { fail "(timeout) nexti" } + } + + +#test output +send "output\n" +expect { + -re "Argument required .expression to compute.*$prompt $"\ + { pass "output" } + -re ".*$prompt $" { fail "output" } + timeout { fail "(timeout) output" } + } + + +#test print "p" abbreviation +send "p\n" +expect { + -re "The history is empty..*$prompt $"\ + { pass "print \"p\" abbreviation" } + -re ".*$prompt $" { fail "print \"p\" abbreviation" } + timeout { fail "(timeout) print \"p\" abbreviation" } + } + + +#test print +send "print\n" +expect { + -re "The history is empty..*$prompt $"\ + { pass "print" } + -re ".*$prompt $" { fail "print" } + timeout { fail "(timeout) print" } + } + + +#test printf +send "printf\n" +expect { + -re "Argument required .format-control string and values to print.*$prompt $"\ + { pass "printf" } + -re ".*$prompt $" { fail "printf" } + timeout { fail "(timeout) printf" } + } + + +# this command was removed from GDB 4.5.8 +#test printsyms +#send "printsyms\n" +#expect { +# -re "printsyms takes an output file name and optional symbol file name.*$prompt $"\ +# { pass "printsyms" } +# -re ".*$prompt $" { fail "printsyms" } +# timeout { fail "(timeout) printsyms" } +# } + +#test ptype +send "ptype\n" +expect { + -re "The history is empty..*$prompt $"\ + { pass "ptype" } + -re ".*$prompt $" { fail "ptype" } + timeout { fail "(timeout) ptype" } + } + + +#test pwd +send "pwd\n" +expect { + -re "Working directory .*$prompt $"\ + { pass "pwd" } + -re ".*$prompt $" { fail "pwd" } + timeout { fail "(timeout) pwd" } + } + + +#test run "r" abbreviation +if [istarget "*-*-vxworks"] then { + send "set args\n" + expect -re "$prompt $" {} + gdb_test "r" "Starting program: .* +You must specify a function name to run, and arguments if any"\ + "run \"r\" abbreviation" + send "set args main\n" + expect -re "$prompt $" {} +} else { + send "r\n" + expect { + -re "Starting program: .* +You can't do that when your target is `None'.*$prompt $"\ + { pass "run \"r\" abbreviation" } + -re "Starting program: .* +No executable file specified.* +Use the \"file\" or \"exec-file\" command.*$prompt $"\ + { pass "run \"r\" abbreviation" } + -re "Starting program: .* +No image loaded into target.*$prompt $"\ + { pass "run \"r\" abbreviation" } + -re "Don't know how to run. Try \"help target\"..*$prompt $"\ + { pass "run \"r\" abbreviation" } + -re ".*$prompt $" { fail "run \"r\" abbreviation" } + timeout { fail "(timeout) run \"r\" abbreviation" } + } +} + +#test run +if [istarget "*-*-vxworks"] then { + send "set args\n" + expect -re "$prompt $" {} + gdb_test "run" "Starting program: .* +You must specify a function name to run, and arguments if any" + send "set args main\n" + expect -re "$prompt $" {} +} else { + send "run\n" + expect { + -re "Starting program:.*You can't do that when your target is `None'.*$prompt $" { pass "run" } + -re "Starting program: .* +No executable file specified.* +Use the \"file\" or \"exec-file\" command.*$prompt $"\ + { pass "run" } + -re "Starting program: .* +No image loaded into target.*$prompt $"\ + { pass "run" } + -re "Don't know how to run. Try \"help target\"..*$prompt $"\ + { pass "run" } + -re ".*$prompt $" { fail "run" } + timeout { fail "(timeout) run" } + } +} + +#test rbreak +send "rbreak\n" +expect { + -re "$prompt $"\ + { pass "rbreak" } + timeout { fail "(timeout) rbreak" } + } + + +#test return +# The middle case accommodates the a29k, where doing the "ni" above causes +# an initial stack to be created. +send "return\n" +expect { + -re "No selected frame..*$prompt $"\ + { pass "return" } + -re "Make .* return now.*y or n. $" { + send "y\n" + exp_continue + } + -re ".*$prompt $" { fail "return" } + timeout { fail "(timeout) return" } + } + + +#test reverse-search +send "reverse-search\n" +expect { + -re "No previous regular expression.*$prompt $"\ + { pass "reverse-search" } + -re "There is no previous regular expression.*$prompt $"\ + { pass "forward-search" } + -re ".*$prompt $" { fail "reverse-search" } + timeout { fail "(timeout) reverse-search" } + } + + +#test step "s" abbreviation +setup_xfail "a29k-*-udi" +send "s\n" +expect { + -re "The program is not being run..*$prompt $"\ + { pass "step \"s\" abbreviation" } + -re ".*$prompt $" { fail "step \"s\" abbreviation" } + timeout { fail "(timeout) step \"s\" abbreviation" } + } + + +#test step +setup_xfail "a29k-*-udi" +send "step\n" +expect { + -re "The program is not being run..*$prompt $"\ + { pass "step" } + -re ".*$prompt $" { fail "step" } + timeout { fail "(timeout) step" } + } + + +#test search +send "search\n" +expect { + -re "No previous regular expression.*$prompt $"\ + { pass "search" } + -re "There is no previous regular expression.*$prompt $"\ + { pass "forward-search" } + -re ".*$prompt $" { fail "search" } + timeout { fail "(timeout) search" } + } + + +#test section +send "section\n" +expect { + -re "Must specify section name and its virtual address.*$prompt $"\ + { pass "section" } + -re ".*$prompt $" { fail "section" } + timeout { fail "(timeout) section" } + } + + +#test set args +send "set args\n" +expect { + -re "$prompt $"\ + { pass "set args" } + timeout { fail "(timeout) set args" } + } + + +#test set check "c" abbreviation +send "set c\n" +expect { + -re "\"set check\" must be followed by the name of a check subcommand..* +List of set check subcommands:.* +set check range -- Set range checking.* +set check type -- Set type checking.* +Type \"help set check\" followed by set check subcommand name for full documentation..* +Command name abbreviations are allowed if unambiguous..*$prompt $"\ + { pass "set check \"c\" abbreviation" } + -re ".*$prompt $" { fail "set check \"c\" abbreviation" } + timeout { fail "(timeout) set check \"c\" abbreviation" } + } + + +#test set check "ch" abbreviation +send "set ch\n" +expect { + -re "\"set check\" must be followed by the name of a check subcommand..* +List of set check subcommands:.* +set check range -- Set range checking.* +set check type -- Set type checking.* +Type \"help set check\" followed by set check subcommand name for full documentation..* +Command name abbreviations are allowed if unambiguous..*$prompt $"\ + { pass "set check \"ch\" abbreviation" } + -re ".*$prompt $" { fail "set check \"ch\" abbreviation" } + timeout { fail "(timeout) set check \"ch\" abbreviation" } + } + + +#test set check +send "set check\n" +expect { + -re "\"set check\" must be followed by the name of a check subcommand..* +List of set check subcommands:.* +set check range -- Set range checking.* +set check type -- Set type checking.* +Type \"help set check\" followed by set check subcommand name for full documentation..* +Command name abbreviations are allowed if unambiguous..*$prompt $"\ + { pass "set check" } + -re ".*$prompt $" { fail "set check" } + timeout { fail "(timeout) set check" } + } + + +#test set check range +send "set check range\n" +expect { + -re "$prompt $"\ + { pass "set check range" } + timeout { fail "(timeout) set check range" } + } + + +#test set check type +send "set check type\n" +expect { + -re "$prompt $"\ + { pass "set check type" } + timeout { fail "(timeout) set check type" } + } + + +#test set complaints +send "set complaints\n" +expect { + -re "Argument required .integer to set it to.*$prompt $"\ + { pass "set complaints" } + -re ".*$prompt $" { fail "set complaints" } + timeout { fail "(timeout) set complaints" } + } + + +#test set confirm +send "set confirm\n" +expect { + -re "$prompt $"\ + { pass "set confirm" } + timeout { fail "(timeout) set confirm" } + } + + +#test set editing +send "set editing\n" +expect { + -re "$prompt $"\ + { pass "set editing" } + timeout { fail "(timeout) set editing" } + } + + + +#test set environment +send "set environment\n" +expect { + -re "Argument required .environment variable and value.*$prompt $"\ + { pass "set environment" } + -re ".*$prompt $" { fail "set environment" } + timeout { fail "(timeout) set environment" } + } + + +#test set height +send "set height\n" +expect { + -re "Argument required .integer to set it to.*$prompt $"\ + { pass "set height" } + -re ".*$prompt $" { fail "set height" } + timeout { fail "(timeout) set height" } + } + + +#test set history expansion +send "set history expansion\n" +expect { + -re "$prompt $"\ + { pass "set history expansion" } + timeout { fail "(timeout) set history expansion" } + } + + +#test set history filename +send "set history filename\n" +expect { + -re "Argument required .filename to set it to.*$prompt $" { + pass "set history filename" + } + -re ".*$prompt $" { + fail "set history filename" + } + timeout { + fail "(timeout) set history filename" + } + } + + +#test set history save +send "set history save\n" +expect { + -re "$prompt $"\ + { pass "set history save" } + timeout { fail "(timeout) set history save" } + } + + +#test set history size +send "set history size\n" +expect { + -re "Argument required .integer to set it to.*$prompt $"\ + { pass "set history size" } + -re ".*$prompt $" { fail "set history size" } + timeout { fail "(timeout) set history size" } + } + + +#test set history +send "set history\n" +expect { + -re "\"set history\" must be followed by the name of a history subcommand..* +List of set history subcommands:.* +set history filename -- Set the filename in which to record the command history.* +set history size -- Set the size of the command history.* +set history save -- Set saving of the history record on exit.* +set history expansion -- Set history expansion on command input.* +Type \"help set history\" followed by set history subcommand name for full documentation..* +Command name abbreviations are allowed if unambiguous..*$prompt $"\ + { pass "set history" } + -re ".*$prompt $" { fail "set history" } + timeout { fail "(timeout) set history" } + } + + +#test set language +send "set language\n" +expect { + -re "The currently understood settings are:.* +local or auto Automatic setting based on source file.* +c Use the C language.* +c\[+\]+ Use the C\[+\]+ language.* +modula-2 Use the Modula-2 language.*$prompt $" { + pass "set language" + } + -re ".*$prompt $" { + fail "set language" + } + timeout { + fail "(timeout) set language" + } + } + + +#test set listsize +send "set listsize\n" +expect { + -re "Argument required .integer to set it to.*$prompt $" { + pass "set listsize" + } + -re ".*$prompt $" { fail "set listsize" } + timeout { fail "(timeout) set listsize" } + } + + +#test set print "p" abbreviation +send "set p\n" +expect { + -re "\"set print\" must be followed by the name of a print subcommand..* +List of set print subcommands:.* +Type \"help set print\" followed by set print subcommand name for full documentation..* +Command name abbreviations are allowed if unambiguous..*$prompt $" { + pass "set print \"p\" abbreviation" + } + -re ".*$prompt $" { fail "set print \"p\" abbreviation" } + timeout { fail "(timeout) set print \"p\" abbreviation" } + } + + +#test set print "pr" abbreviation +send "set pr\n" +expect { + -re "\"set print\" must be followed by the name of a print subcommand..* +List of set print subcommands:.* +Type \"help set print\" followed by set print subcommand name for full documentation..* +Command name abbreviations are allowed if unambiguous..*$prompt $" { + pass "set print \"pr\" abbreviation" + } + -re ".*$prompt $" { fail "set print \"pr\" abbreviation" } + timeout { fail "(timeout) set print \"pr\" abbreviation" } + } + + +#test set print +send "set print\n" +expect { + -re "\"set print\" must be followed by the name of a print subcommand..* +List of set print subcommands:.* +Type \"help set print\" followed by set print subcommand name for full documentation..* +Command name abbreviations are allowed if unambiguous..*$prompt $" { + pass "set print" + } + -re ".*$prompt $" { fail "set print" } + timeout { fail "(timeout) set print" } + } + + +#test set print address +send "set print address\n" +expect { + -re "$prompt $"\ + { pass "set print address" } + timeout { fail "(timeout) set print address" } + } + + +#test set print array +send "set print array\n" +expect { + -re "$prompt $"\ + { pass "set print array" } + timeout { fail "(timeout) set print array" } + } + + +#test set print asm-demangle +send "set print asm-demangle\n" +expect { + -re "$prompt $"\ + { pass "set print asm-demangle" } + timeout { fail "(timeout) set print asm-demangle" } + } + + +#test set print demangle +send "set print demangle\n" +expect { + -re "$prompt $"\ + { pass "set print demangle" } + timeout { fail "(timeout) set print demangle" } + } + + +#test set print elements +send "set print elements\n" +expect { + -re "Argument required .integer to set it to.*$prompt $"\ + { pass "set print elements" } + -re ".*$prompt $" { fail "set print elements" } + timeout { fail "(timeout) set print elements" } + } + + +#test set print object +send "set print object\n" +expect { + -re "$prompt $"\ + { pass "set print object" } + timeout { fail "(timeout) set print object" } + } + + +#test set print pretty +send "set print pretty\n" +expect { + -re "$prompt $"\ + { pass "set print pretty" } + timeout { fail "(timeout) set print pretty" } + } + + +#test set print sevenbit-strings +send "set print sevenbit-strings\n" +expect { + -re "$prompt $"\ + { pass "set print sevenbit-strings" } + timeout { fail "(timeout) set print sevenbit-strings" } + } + + +#test set print union +send "set print union\n" +expect { + -re "$prompt $"\ + { pass "set print union" } + timeout { fail "(timeout) set print union" } + } + + +#test set print vtbl +send "set print vtbl\n" +expect { + -re "$prompt $"\ + { pass "set print vtbl" } + timeout { fail "(timeout) set print vtbl" } + } + + +# FIXME -- need a test for "set prompt" +#test set radix +send "set radix\n" +expect { + -re "Input and output radices now set to decimal 10, hex a, octal 12.*$prompt $"\ + { pass "set radix" } + -re "Argument required .integer to set it to.*$prompt $"\ + { fail "set radix (obsolete radix support)" } + -re ".*$prompt $" { fail "set radix" } + timeout { fail "(timeout) set radix" } + } + + +#test set symbol-reloading +send "set symbol-reloading\n" +expect { + -re "$prompt $"\ + { pass "set symbol-reloading" } + timeout { fail "(timeout) set symbol-reloading" } + } + + +#test set variable +send "set variable\n" +expect { + -re "Argument required .expression to compute.*$prompt $"\ + { pass "set variable" } + -re ".*$prompt $" { fail "set variable" } + timeout { fail "(timeout) set variable" } + } + + +#test set verbose +send "set verbose\n" +expect { + -re "$prompt $"\ + { pass "set verbose" } + timeout { fail "(timeout) set verbose" } + } + + +#test set width +send "set width\n" +expect { + -re "Argument required .integer to set it to.*$prompt $"\ + { pass "set width" } + -re ".*$prompt $" { fail "set width" } + timeout { fail "(timeout) set width" } + } + + +#test set write +# This is only supported on targets which use exec.o. +if ![istarget "rs6000-*-*"] then { + send "set write\n" + expect { + -re "set write\[\r\n\]*$prompt $"\ + { pass "set write" } + -re "$prompt $" { fail "set write" } + timeout { fail "(timeout) set write" } + } + gdb_test "set write off" "" +} + +#test set +send "set\n" +expect { + -re "Argument required .expression to compute.*$prompt $"\ + { pass "set" } + -re ".*$prompt $" { fail "set" } + timeout { fail "(timeout) set" } + } + + +#test shell echo Hi dad! +send "shell echo Hi dad!\n" +expect { + -re "Hi dad!.*$prompt $"\ + { pass "shell echo Hi dad!" } + -re ".*$prompt $" { fail "shell echo Hi dad!" } + timeout { fail "(timeout) shell echo Hi dad!" } + } + + +#test show args +send "show args\n" +expect { + -re "Arguments to give program being debugged when it is started is \"\"..*$prompt $"\ + { pass "show args" } + -re ".*$prompt $" { fail "show args" } + timeout { fail "(timeout) show args" } + } + + +#test show check "c" abbreviation +send "show c\n" +expect { + -re "range: Range checking is \"auto; currently off\"..* +type: Type checking is \"auto; currently off\"..*$prompt $"\ + { pass "show check \"c\" abbreviation" } + -re ".*$prompt $" { fail "show check \"c\" abbreviation" } + timeout { fail "(timeout) show check \"c\" abbreviation" } + } + + +#test show check "ch" abbreviation +send "show ch\n" +expect { + -re "range: Range checking is \"auto; currently off\"..* +type: Type checking is \"auto; currently off\"..*$prompt $"\ + { pass "show check \"ch\" abbreviation" } + -re ".*$prompt $" { fail "show check \"ch\" abbreviation" } + timeout { fail "(timeout) show check \"ch\" abbreviation" } + } + + +#test show check +send "show check\n" +expect { + -re "range: Range checking is \"auto; currently off\"..* +type: Type checking is \"auto; currently off\"..*$prompt $"\ + { pass "show check" } + -re ".*$prompt $" { fail "show check" } + timeout { fail "(timeout) show check" } + } + + +#test show check range +send "show check range\n" +expect { + -re "Range checking is \"auto; currently off\"..*$prompt $"\ + { pass "show check range" } + -re ".*$prompt $" { fail "show check range" } + timeout { fail "(timeout) show check range" } + } + + +#test show check type +send "show check type\n" +expect { + -re "Type checking is \"auto; currently off\"..*$prompt $"\ + { pass "show check type" } + -re ".*$prompt $" { fail "show check type" } + timeout { fail "(timeout) show check type" } + } + + +#test show commands +send "show commands\n" +expect { + -re "$prompt $"\ + { pass "show commands" } + timeout { fail "(timeout) show commands" } + } + + +#test show complaints +send "show complaints\n" +expect { + -re "Max number of complaints about incorrect symbols is 0..*$prompt $"\ + { pass "show complaints" } + -re ".*$prompt $" { fail "show complaints" } + timeout { fail "(timeout) show complaints" } + } + + +#test show confirm +send "show confirm\n" +expect { + -re "Whether to confirm potentially dangerous operations is on..*$prompt $"\ + { pass "show confirm" } + -re ".*$prompt $" { fail "show confirm" } + timeout { fail "(timeout) show confirm" } + } + + +#test show convenience +send "show convenience\n" +expect { + -re "No debugger convenience variables now defined..* +Convenience variables have names starting with \".\";.* +use \"set\" as in \"set .foo = 5\" to define them..*$prompt $"\ + { pass "show convenience" } + -re ".*$prompt $" { fail "show convenience" } + timeout { fail "(timeout) show convenience" } + } + + +#test show directories +send "show directories\n" +expect { + -re "Source directories searched: .cdir:.cwd.*$prompt $"\ + { pass "show directories" } + -re ".*$prompt $" { fail "show directories" } + timeout { fail "(timeout) show directories" } + } + + +#test show editing +send "show editing\n" +expect { + -re "Editing of command lines as they are typed is on..*$prompt $"\ + { pass "show editing" } + -re ".*$prompt $" { fail "show editing" } + timeout { fail "(timeout) show editing" } + } + + +#test show height +send "show height\n" +expect { + -re "Number of lines gdb thinks are in a page is.*$prompt $"\ + { pass "show height" } + -re ".*$prompt $" { fail "show height" } + timeout { fail "(timeout) show height" } + } + + +#test show history expansion +send "show history expansion\n" +expect { + -re "History expansion on command input is on.*$prompt $"\ + { pass "show history expansion" } + -re ".*$prompt $" { fail "show history expansion" } + timeout { fail "(timeout) show history expansion" } + } + + +#test show history filename +send "show history filename\n" +expect { + -re "The filename in which to record the command history is.*.gdb_history.*$prompt $" { pass "show history filename" } + -re ".*$prompt $" { fail "show history filename" } + timeout { fail "(timeout) show history filename" } + } + + +#test show history save +send "show history save\n" +expect { + -re "Saving of the history record on exit is on..*$prompt $" { + pass "show history save" + } + -re ".*$prompt $" { fail "show history save" } + timeout { fail "(timeout) show history save" } + } + + +#test show history size +send "show history size\n" +expect { + -re "The size of the command history is.*$prompt $"\ + { pass "show history size" } + -re ".*$prompt $" { fail "show history size" } + timeout { fail "(timeout) show history size" } + } + + +#test show history +send "show history\n" +expect { + -re "filename: The filename in which to record the command history is.*.gdb_history.* +size: The size of the command history is.* +save: Saving of the history record on exit is o.* +expansion: History expansion on command input is o.*$prompt $" + { pass "show history" } + -re ".*$prompt $" { fail "show history" } + timeout { fail "(timeout) show history" } + } + + +#test show language +send "show language\n" +expect { + -re "The current source language is \"auto; currently c\"..*$prompt $"\ + { pass "show language" } + -re ".*$prompt $" { fail "show language" } + timeout { fail "(timeout) show language" } + } + + +#test show listsize +send "show listsize\n" +expect { + -re "Number of source lines gdb will list by default is 10..*$prompt $"\ + { pass "show listsize" } + -re ".*$prompt $" { fail "show listsize" } + timeout { fail "(timeout) show listsize" } + } + + +#test show print "p" abbreviation +send "show p\n" +expect { + -re ".*$prompt $"\ + { pass "show print \"p\" abbreviation" } + timeout { fail "(timeout) show print \"p\" abbreviation" } + } + + +#test show print "pr" abbreviation +send "show pr\n" +expect { + -re ".*$prompt $"\ + { pass "show print \"pr\" abbreviation" } + timeout { fail "(timeout) show print \"pr\" abbreviation" } + } + + + +#test show print +send "show print\n" +expect { + -re ".*$prompt $"\ + { pass "show print" } + timeout { fail "(timeout) show print" } + } + + +#test show paths +send "show paths\n" +expect { + -re "Executable and object file path:.*$prompt $"\ + { pass "show paths" } + -re ".*$prompt $" { fail "show paths" } + timeout { fail "(timeout) show paths" } + } + + +#test show print address +send "show print address\n" +expect { + -re "Printing of addresses is on..*$prompt $"\ + { pass "show print address" } + -re ".*$prompt $" { fail "show print address" } + timeout { fail "(timeout) show print address" } + } + + +#test show print array +send "show print array\n" +expect { + -re "Prettyprinting of arrays is on..*$prompt $"\ + { pass "show print array" } + -re ".*$prompt $" { fail "show print array" } + timeout { fail "(timeout) show print array" } + } + + +#test show print asm-demangle +send "show print asm-demangle\n" +expect { + -re "Demangling of C\[+\]+ names in disassembly listings is on..*$prompt $"\ + { pass "show print asm-demangle" } + -re ".*$prompt $" { fail "show print asm-demangle" } + timeout { fail "(timeout) show print asm-demangle" } + } + + +#test show print demangle +send "show print demangle\n" +expect { + -re "Demangling of encoded C\[+\]+ names when displaying symbols is on..*$prompt $"\ + { pass "show print demangle" } + -re ".*$prompt $" { fail "show print demangle" } + timeout { fail "(timeout) show print demangle" } + } + + +#test show print elements +send "show print elements\n" +expect { + -re "Limit on string chars or array elements to print is 200..*$prompt $"\ + { pass "show print elements" } + -re ".*$prompt $" { fail "show print elements" } + timeout { fail "(timeout) show print elements" } + } + + +#test show print object +send "show print object\n" +expect { + -re "Printing of object's derived type based on vtable info is on..*$prompt $"\ + { pass "show print object" } + -re ".*$prompt $" { fail "show print object" } + timeout { fail "(timeout) show print object" } + } + + +#test show print pretty +send "show print pretty\n" +expect { + -re "Prettyprinting of structures is on..*$prompt $"\ + { pass "show print pretty" } + -re ".*$prompt $" { fail "show print pretty" } + timeout { fail "(timeout) show print pretty" } + } + + +#test show print sevenbit-strings +send "show print sevenbit-strings\n" +expect { + -re "Printing of 8-bit characters in strings as .nnn is on..*$prompt $"\ + { pass "show print sevenbit-strings" } + -re ".*$prompt $" { fail "show print sevenbit-strings" } + timeout { fail "(timeout) show print sevenbit-strings" } + } + + +#test show print union +send "show print union\n" +expect { + -re "Printing of unions interior to structures is on..*$prompt $"\ + { pass "show print union" } + -re ".*$prompt $" { fail "show print union" } + timeout { fail "(timeout) show print union" } + } + + +#test show print vtbl +send "show print vtbl\n" +expect { + -re "Printing of C\[+\]+ virtual function tables is on..*$prompt $"\ + { pass "show print vtbl" } + -re ".*$prompt $" { fail "show print vtbl" } + timeout { fail "(timeout) show print vtbl" } + } + + +#test show prompt +# In the FAIL case, can't just look for $prompt because that will match +# the output, rather than the prompt. So look for $prompt at the start +# of a line. +send "show prompt\n" +expect { + -re "Gdb's prompt is \"$prompt \".*$prompt $"\ + { pass "show prompt" } + -re ".*\r\n$prompt $" { fail "show prompt" } + timeout { fail "(timeout) show prompt" } + } + + +#test show radix +send "show radix\n" +expect { + -re "Input and output radices set to decimal 10, hex a, octal 12..*$prompt $"\ + { pass "show radix" } + -re "Default input and output number radix is 10..*$prompt $"\ + { fail "show radix (obsolete radix support)" } + -re ".*$prompt $" { fail "show radix" } + timeout { fail "(timeout) show radix" } + } + + +#test show symbol-reloading +send "show symbol-reloading\n" +expect { + -re "Dynamic symbol table reloading multiple times in one run is on..*$prompt $"\ + { pass "show symbol-reloading" } + -re ".*$prompt $" { fail "show symbol-reloading" } + timeout { fail "(timeout) show symbol-reloading" } + } + + +#test show user +send "show user\n" +expect { + -re "$prompt $"\ + { pass "show user" } + timeout { fail "(timeout) show user" } + } + + +#test show values +send "show values\n" +expect { + -re "$prompt $"\ + { pass "show values" } + timeout { fail "(timeout) show values" } + } + + +#test show verbose +send "show verbose\n" +expect { + -re "Verbose printing of informational messages is on..*$prompt $"\ + { pass "show verbose" } + -re ".*$prompt $" { fail "show verbose" } + timeout { fail "(timeout) show verbose" } + } + + +#test show version +send "show version\n" +expect { + -re "GDB is free software and you are welcome to distribute copies of it.* + under certain conditions; type \"show copying\" to see the conditions..* +There is absolutely no warranty for GDB; type \"show warranty\" for details..* +GDB.*Copyright \[0-9\]* Free Software Foundation, Inc..*$prompt $"\ + { pass "show version" } + -re ".*$prompt $" { fail "show version" } + timeout { fail "(timeout) show version" } + } + + +#test show width +send "show width\n" +expect { + -re "Number of characters gdb thinks are in a line is.*$prompt $"\ + { pass "show width" } + -re ".*$prompt $" { fail "show width" } + timeout { fail "(timeout) show width" } + } + + +#test show write +# This is only supported on targets which use exec.o. +if ![istarget "rs6000-*-*"] then { + send "show write\n" + expect { + -re "Writing into executable and core files is off..*$prompt $"\ + { pass "show write" } + -re ".*$prompt $" { fail "show write" } + timeout { fail "(timeout) show write" } + } +} + +#test show +send "show\n" +expect { + -re "confirm: Whether to confirm potentially dangerous operations is on..* +history filename: The filename in which to record the command history is .* +history size: The size of the command history is.* +history save: Saving of the history record on exit is on..* +print elements: Limit on string chars or array elements to print is 200..* +listsize: Number of source lines gdb will list by default is 10.*$prompt $"\ + { pass "show" } + -re "\n$prompt $" { fail "show" } + timeout { fail "(timeout) show" } + } + + +#test stepi "si" abbreviation +setup_xfail "a29k-*-udi" +send "si\n" +expect { + -re "The program is not being run..*$prompt $"\ + { pass "stepi \"si\" abbreviation" } + -re ".*$prompt $" { fail "stepi \"si\" abbreviation" } + timeout { fail "(timeout) stepi \"si\" abbreviation" } + } + + +#test stepi +setup_xfail "a29k-*-udi" +send "stepi\n" +expect { + -re "The program is not being run..*$prompt $"\ + { pass "stepi" } + -re ".*$prompt $" { fail "stepi" } + timeout { fail "(timeout) stepi" } + } + + +#test signal +setup_xfail "a29k-*-udi" +send "signal\n" +expect { + -re "The program is not being run..*$prompt $"\ + { pass "signal" } + -re ".*$prompt $" { fail "signal" } + timeout { fail "(timeout) signal" } + } + + +#test source +send "source\n" +expect { + -re "source command requires pathname of file to source..*$prompt" + { pass "source" } + -re "No such file or directory.*$prompt $" { pass "source" } + -re ".*$prompt $" { fail "source" } + timeout { fail "(timeout) source" } + } + +#test step "s" abbreviation +setup_xfail "a29k-*-udi" +send "s\n" +expect { + -re "The program is not being run..*$prompt $"\ + { pass "step \"s\" abbreviation" } + -re ".*$prompt $" { fail "step \"s\" abbreviation" } + timeout { fail "(timeout) step \"s\" abbreviation" } + } + + +#test step +setup_xfail "a29k-*-udi" +send "step\n" +expect { + -re "The program is not being run..*$prompt $"\ + { pass "step" } + -re ".*$prompt $" { fail "step" } + timeout { fail "(timeout) step" } + } + + +#test symbol-file +send "symbol-file\n" +expect { + -re "$prompt $"\ + { pass "symbol-file" } + timeout { fail "(timeout) symbol-file" } + } + + +#test target child +send "target child\n" +expect { + -re "Use the \"run\" command to start a Unix child process..*$prompt $"\ + { pass "target child (non-procfs version)" } + -re "Undefined target command: \"child\". Try \"help target\"..*$prompt $"\ + { pass "target child (procfs version)" } + + -re ".*$prompt $" { fail "target child" } + timeout { fail "(timeout) target child" } + } + + +#test target procfs +send "target procfs\n" +expect { + -re "Use the \"run\" command to start a Unix child process..*$prompt $"\ + { pass "target procfs (procfs version)" } + -re "Undefined target command: \"procfs\". Try \"help target\"..*$prompt $"\ + { pass "target procfs (non-procfs version)" } + + -re ".*$prompt $" { fail "target procfs" } + timeout { fail "(timeout) target procfs" } + } + + +#test target core +send "target core\n" +expect { + -re "No core file specified..*$prompt $"\ + { pass "target core" } + -re ".*A program is being debugged already. Kill it. .y or n.*$" { + send "n\n" + if $verbose>1 then { + send_user "\t\tDidn't kill program being debugged\n" + } + expect -re "$prompt $" { } + pass "target core" + } + -re "Undefined target command: \"core\". Try \"help target\"..*$prompt $"\ + { pass "target core" } + -re ".*$prompt $" { fail "target core" } + timeout { fail "(timeout) target core" } + } + + +#test target exec +send "target exec\n" +expect { + -re "No exec file now..*$prompt $"\ + { pass "target exec" } + -re ".*A program is being debugged already. Kill it. .y or n.*$" { + send "n\n" + if $verbose>1 then { + send_user "\t\tDidn't kill program being debugged\n" + } + expect -re "$prompt $" { } + pass "target exec" + } + -re ".*$prompt $" { fail "target exec" } + timeout { fail "(timeout) target exec" } + } + + +#test target remote +if ![istarget "*-*-udi*"] then { + send "target remote\n" + expect { + -re "To open a remote debug connection, you need to specify what serial.* +device is attached to the remote system .e.g. /dev/ttya.*$prompt $"\ + { pass "target remote" } + -re ".*A program is being debugged already. Kill it. .y or n.*$" { + send "n\n" + if $verbose>1 then { + send_user "\t\tDidn't kill program being debugged\n" + } + expect -re "$prompt $" { } + pass "target remote" + } + -re ".*$prompt $" { fail "target remote" } + timeout { fail "(timeout) target remote" } + } +} + +#test target +send "target\n" +expect { + -re "Argument required .target name.*$prompt $"\ + { pass "target" } + -re ".*$prompt $" { fail "target" } + timeout { fail "(timeout) target" } + } + + +#test tbreak +send "tbreak\n" +expect { + -re "No default breakpoint address now..*$prompt $"\ + { pass "tbreak" } + -re ".*$prompt $" { fail "tbreak" } + timeout { fail "(timeout) tbreak" } + } + + +#test tty +send "tty\n" +expect { + -re "Argument required .terminal name for running target process.*$prompt $"\ + { pass "tty" } + -re ".*$prompt $" { fail "tty" } + timeout { fail "(timeout) tty" } + } + + +#test until "u" abbreviation +setup_xfail "a29k-*-udi" +send "u\n" +expect { + -re "The program is not running..*$prompt $"\ + { pass "until \"u\" abbreviation" } + -re ".*$prompt $" { fail "until \"u\" abbreviation" } + timeout { fail "(timeout) until \"u\" abbreviation" } + } + + +#test until +setup_xfail "a29k-*-udi" +send "until\n" +expect { + -re "The program is not running..*$prompt $"\ + { pass "until" } + -re ".*$prompt $" { fail "until" } + timeout { fail "(timeout) until" } + } + + +#test undisplay +# FIXME -- need to dump full output to detailed log +send "undisplay\n" +expect { + -re "Delete all auto-display expressions.*y or n. $"\ + { send "y\n" + expect { + -re "$prompt $"\ + { pass "undisplay prompt" } + timeout { fail "(timeout) (timeout) undisplay prompt" } + } + } + timeout { fail "(timeout) (timeout) undisplay prompt" } + } + + +#test unset environment +send "unset environment\n" +expect { + -re "Delete all environment variables?.*y or n. $"\ + { send "y\n" + expect { + -re "$prompt $"\ + { pass "unset environmentprompt" } + timeout { fail "(timeout) (timeout) unset environment prompt" } + } + } + timeout { fail "(timeout) (timeout) unset environment prompt" } + } + + + +#test unset +send "unset\n" +expect { + -re "\"unset\" must be followed by the name of an unset subcommand..* +List of unset subcommands:.* +unset environment -- Cancel environment variable VAR for the program.* +Type \"help unset\" followed by unset subcommand name for full documentation..* +Command name abbreviations are allowed if unambiguous..*$prompt $"\ + { pass "unset" } + -re ".*$prompt $" { fail "unset" } + timeout { fail "(timeout) unset" } + } + + +#test up +gdb_test "up" "No stack\\." "up in default.exp" + +#test up-silently +send "up-silently\n" +expect { + -re "No stack..*$prompt $"\ + { pass "up-silently" } + -re ".*$prompt $" { fail "up-silently" } + timeout { fail "(timeout) up-silently" } + } + + +#test watch +send "watch\n" +expect { + -re "Argument required .expression to compute.*$prompt $"\ + { pass "watch" } + -re ".*$prompt $" { fail "watch" } + timeout { fail "(timeout) watch" } + } + + +#test whatis +send "whatis\n" +expect { + -re "The history is empty..*$prompt $"\ + { pass "whatis" } + -re ".*$prompt $" { fail "whatis" } + timeout { fail "(timeout) whatis" } + } + + +#test where +setup_xfail "a29k-*-udi" +send "where\n" +expect { + -re "No stack..*$prompt $"\ + { pass "where" } + -re ".*$prompt $" { fail "where" } + timeout { fail "(timeout) where" } + } + + +#test x +#The case in which it prints a number is for vxgdb. +send "x\n" +expect { + -re "0x0:.*Cannot access memory at address 0x0..*$prompt $"\ + { pass "x" } + -re "0x0:.*0x\[0-9\]*.*$prompt $"\ + { pass "x" } + -re ".*$prompt $" { fail "x" } + timeout { fail "(timeout) x" } + } +