diff options
author | Stan Shebs <shebs@codesourcery.com> | 1999-04-16 01:35:26 +0000 |
---|---|---|
committer | Stan Shebs <shebs@codesourcery.com> | 1999-04-16 01:35:26 +0000 |
commit | c906108c21474dfb4ed285bcc0ac6fe02cd400cc (patch) | |
tree | a0015aa5cedc19ccbab307251353a41722a3ae13 /gdb/testsuite/gdb.trace/deltrace.exp | |
parent | cd946cff9ede3f30935803403f06f6ed30cad136 (diff) | |
download | gdb-c906108c21474dfb4ed285bcc0ac6fe02cd400cc.zip gdb-c906108c21474dfb4ed285bcc0ac6fe02cd400cc.tar.gz gdb-c906108c21474dfb4ed285bcc0ac6fe02cd400cc.tar.bz2 |
Initial creation of sourceware repositorygdb-4_18-branchpoint
Diffstat (limited to 'gdb/testsuite/gdb.trace/deltrace.exp')
-rw-r--r-- | gdb/testsuite/gdb.trace/deltrace.exp | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.trace/deltrace.exp b/gdb/testsuite/gdb.trace/deltrace.exp new file mode 100644 index 0000000..d3198ad --- /dev/null +++ b/gdb/testsuite/gdb.trace/deltrace.exp @@ -0,0 +1,269 @@ +# Copyright (C) 1998 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 + +# This file was written by Michael Snyder (msnyder@cygnus.com) + +load_lib "trace-support.exp"; + +if $tracelevel then { + strace $tracelevel +} + +set prms_id 0 +set bug_id 0 + +gdb_exit +gdb_start + +if [istarget "m68k-*-elf"] then { + set srcfile gdb_c_test.c + set binfile [board_info target d490_binfile]; +} else { + set testfile "actions" + set srcfile ${testfile}.c + set binfile $objdir/$subdir/$testfile + if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ + executable {debug additional_flags=-w}] != "" } { + gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." + } +} +gdb_reinitialize_dir $srcdir/$subdir + +# If testing on a remote host, download the source file. +# remote_download host $srcdir/$subdir/$srcfile + +gdb_file_cmd $binfile + +# define relative source line numbers: +# all subsequent line numbers are relative to this first one (baseline) +set baseline [gdb_find_recursion_test_baseline $srcfile]; +if { $baseline == -1 } then { + fail "Could not find gdb_recursion_test function" + return; +} +set testline1 [expr $baseline + 4] + +# +# test "delete tracepoints" command +# + +# 3.1 delete tracepoints (all) +gdb_delete_tracepoints +gdb_test "trace gdb_c_test" "Tracepoint \[0-9\]+ at .*" "set tracepoint 1" +gdb_test "trace gdb_asm_test" "Tracepoint \[0-9\]+ at .*" "set tracepoint 2" +gdb_test "trace $testline1" "Tracepoint \[0-9\]+ at .*" "set tracepoint 3" + +gdb_test "info tracepoints" \ + "Num Enb Address PassC StepC What.*\[0-9\]+\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_c_test.*\[0-9\]+\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*\[0-9\]+\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_recursion_test.*" \ + "3.1a: set three tracepoints" + +send_gdb "delete tracepoints\n" +gdb_expect 30 { + -re "Delete all tracepoints.*y or n.*$" { + send_gdb "y\n" + gdb_expect 30 { + -re "$gdb_prompt $" { + pass "3.1b: delete all tracepoints" + } + timeout { fail "3.1b: delete all tracepoints (timeout)" } + } + } + -re "$gdb_prompt $" { # This should only happen if there are no tracepoints + fail "3.1b: delete all tracepoints (no tracepoints?)" + } + timeout { fail "3.1b: delete all tracepoints (timeout)" } +} + +# 3.2 delete tracepoint <n> +gdb_delete_tracepoints +set trcpt1 [gdb_gettpnum gdb_c_test]; +set trcpt2 [gdb_gettpnum gdb_asm_test]; +set trcpt3 [gdb_gettpnum $testline1]; +if { $trcpt1 <= 0 || $trcpt2 <= 0 || $trcpt3 <= 0 } then { + fail "setting tracepoints" + return; +} + +gdb_test "info tracepoints" \ + "Num Enb Address PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in.*gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in.*gdb_recursion_test.*" \ + "3.2a: set three tracepoints" + +#gdb_test "delete tracepoint $trcpt1" "" "" +send_gdb "delete tracepoint $trcpt1\n" +gdb_expect { + -re "No tracepoint number.*$gdb_prompt $" { + fail "3.2b: delete first tracepoint" + } + -re ".*\[Ee\]rror.*$gdb_prompt $" { + fail "3.2b: delete first tracepoint" + } + -re "$gdb_prompt $" { + pass "3.2b: delete first tracepoint" + } + timeout { + fail "3.2b: delete first tracepoint (timeout)" + } +} + +send_gdb "info tracepoints\n" +gdb_expect { + -re "$trcpt1\[\t \]+y\[\t \]+0x.*in.*gdb_c_test.*$gdb_prompt $" { + fail "3.2c: verify delete first tracepoint (argh)" + } + -re "$trcpt2\[\t \]+y.*gdb_asm_test.*\[\r\n\t ]+$trcpt3\[\t \]+y.* in gdb_recursion_test at .*$gdb_prompt $" { + pass "3.2c: verify delete first tracepoint" + } + -re ".*$gdb_prompt $" { + fail "3.2c: verify delete first tracepoint (mumble)" + } + timeout { + fail "3.2c: verify delete first tracepoint (timeout)" + } +} + +#gdb_test "delete tracepoint $trcpt2" "" "" +send_gdb "delete tracepoint $trcpt2\n" +gdb_expect { + -re "No tracepoint number.*$gdb_prompt $" { + fail "3.2d: delete second tracepoint" + } + -re ".*\[Ee\]rror.*$gdb_prompt $" { + fail "3.2d: delete second tracepoint" + } + -re "$gdb_prompt $" { + pass "3.2d: delete second tracepoint" + } + timeout { + fail "3.2d: delete second tracepoint (timeout)" + } +} + +send_gdb "info tracepoints\n" +gdb_expect { + -re "$trcpt1\[\t \]+y\[\t \]+0x.*in.*gdb_c_test.*$gdb_prompt $" { + fail "3.2e: verify delete second tracepoint" + } + -re "$trcpt2\[\t \]+y\[\t \]+0x.*in gdb_asm_test.*$gdb_prompt $" { + fail "3.2e: verify delete second tracepoint" + } + -re "$trcpt3\[\t \]+y\[\t \]+0x.*in gdb_recursion_test.*$gdb_prompt $" { + pass "3.2e: verify delete second tracepoint" + } + -re "$gdb_prompt $" { + fail "3.2e: verify delete second tracepoint" + } + timeout { + fail "3.2e: verify delete second tracepoint (timeout)" + } +} + +#gdb_test "delete tracepoint $trcpt3" "" "" +send_gdb "delete tracepoint $trcpt3\n" +gdb_expect { + -re "No tracepoint number.*$gdb_prompt $" { + fail "3.2f: delete third tracepoint" + } + -re ".*\[Ee\]rror.*$gdb_prompt $" { + fail "3.2f: delete third tracepoint" + } + -re "$gdb_prompt $" { + pass "3.2f: delete third tracepoint" + } + timeout { + fail "3.2f: delete third tracepoint (timeout)" + } +} + +# send_gdb "ARF! \\n\n" +send_gdb "info tracepoints\n" +gdb_expect { + -re "$trcpt3\[\t \]+y\[\t \]+0x.*in gdb_recursion_test.*$gdb_prompt $" { + fail "3.2g: verify delete third tracepoint" + } + -re "$gdb_prompt $" { + pass "3.2g: verify delete third tracepoint" + } + timeout { + fail "3.2g: verify delete third tracepoint (timeout)" + } +} + +# 3.3 delete three tracepoints at once +gdb_delete_tracepoints +set trcpt1 [gdb_gettpnum gdb_c_test]; +set trcpt2 [gdb_gettpnum gdb_asm_test]; +set trcpt3 [gdb_gettpnum $testline1]; +if { $trcpt1 <= 0 || $trcpt2 <= 0 || $trcpt3 <= 0 } then { + fail "setting tracepoints" + return; +} + +gdb_test "info tracepoints" \ + "Num Enb Address PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_recursion_test.*" \ + "3.3a: set three tracepoints" + +#gdb_test "delete tracepoint $trcpt1 $trcpt2 $trcpt3" "" "" +send_gdb "delete tracepoint $trcpt1 $trcpt2 $trcpt3\n" +gdb_expect { + -re "No tracepoint number.*$gdb_prompt $" { + fail "3.3b: delete three tracepoints" + } + -re ".*\[Ee\]rror.*$gdb_prompt $" { + fail "3.3b: delete three tracepoints" + } + -re "$gdb_prompt $" { + pass "3.3b: delete three tracepoints" + } + timeout { + fail "3.3b: delete three tracepoint (timeout)" + } +} + +send_gdb "info tracepoints\n" +gdb_expect { + -re "$trcpt1\[\t \]+y\[\t \]+0x.*in gdb_c_test.*$gdb_prompt $" { + fail "3.3c: verify delete three tracepoints (first one persists)" + } + -re "$trcpt2\[\t \]+y\[\t \]+0x.*in gdb_asm_test.*$gdb_prompt $" { + fail "3.3c: verify delete three tracepoints (second one persists)" + } + -re "$trcpt3\[\t \]+y\[\t \]+0x.*in gdb_recursion_test.*$gdb_prompt $" { + fail "3.3c: verify delete three tracepoints (third one persists)" + } + -re "$gdb_prompt $" { + pass "3.3c: verify delete three tracepoints" + } + timeout { + fail "3.3c: verify delete three tracepoints (timeout)" + } +} + +# 3.4 delete invalid tracepoint number +gdb_test "delete tracepoint [expr $trcpt2 + $trcpt3]" \ + "No tracepoint number [expr $trcpt2 + $trcpt3]." \ + "3.4: delete invalid tracepoint number" + +# 3.5 delete tracepoint number zero +gdb_test "delete tracepoint 0" "No tracepoint number 0." \ + "3.5: delete tracepoint number zero" + +# 3.6 help delete tracepoints +gdb_test "help delete tracepoints" \ + "Delete specified tracepoints.*" \ + "3.6: help delete tracepoints" |