From c906108c21474dfb4ed285bcc0ac6fe02cd400cc Mon Sep 17 00:00:00 2001 From: Stan Shebs Date: Fri, 16 Apr 1999 01:35:26 +0000 Subject: Initial creation of sourceware repository --- gdb/testsuite/gdb.trace/actions.exp | 207 ++++++++++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 gdb/testsuite/gdb.trace/actions.exp (limited to 'gdb/testsuite/gdb.trace/actions.exp') diff --git a/gdb/testsuite/gdb.trace/actions.exp b/gdb/testsuite/gdb.trace/actions.exp new file mode 100644 index 0000000..f9ac7a4 --- /dev/null +++ b/gdb/testsuite/gdb.trace/actions.exp @@ -0,0 +1,207 @@ +# 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 binfile [board_info target d490_binfile]; + set srcfile gdb_c_test.c +} 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 + 7] + +# +# test actions command +# + +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; +} + +# 5.1 actions of specified tracepoint + +send_gdb "info tracepoints\n" +gdb_expect { + -re "Actions for tracepoint \[0-9\]+:.*$gdb_prompt $" { + fail "5.1a: testsuite failure (tracepoint already has action)!" + } + -re "No tracepoints.*$gdb_prompt $" { + fail "5.1a: set three tracepoints, no actions (No tracepoints!)" + } + -re "$gdb_prompt $" { + pass "5.1a: set three tracepoints, no actions" + } +} + +gdb_trace_setactions "5.1b: set actions for first tracepoint" \ + "$trcpt1" \ + "collect gdb_char_test" "^$" + +send_gdb "info tracepoints\n" +gdb_expect { + -re "Actions for.* $trcpt1:.*collect gdb_char_test.*$gdb_prompt $" { + pass "5.1c: verify actions set for first tracepoint" + } + -re "$gdb_prompt $" { + fail "5.1c: verify actions set for first tracepoint" + } +} + +gdb_trace_setactions "5.1d: set actions for second tracepoint" \ + "$trcpt2" \ + "collect gdb_short_test" "^$" + +send_gdb "info tracepoints\n" +gdb_expect { + -re "Actions for.* $trcpt2:.*collect gdb_short_test.*$gdb_prompt $" { + pass "5.1e: verify actions set for second tracepoint" + } + -re "$gdb_prompt $" { + fail "5.1e: verify actions set for second tracepoint" + } +} + +gdb_trace_setactions "5.2a: set actions for last (default) tracepoint" \ + "" \ + "collect gdb_long_test" "^$" + +send_gdb "info tracepoints\n" +gdb_expect { + -re "Actions for.* $trcpt3:.*collect gdb_long_test.*$gdb_prompt $" { + pass "5.2b: verify actions set for last (default) tracepoint" + } + -re "$gdb_prompt $" { + fail "5.2b: verify actions set for last (default) tracepoint" + } +} + +# 5.3 replace actions set earlier + +gdb_trace_setactions "5.3a: reset actions for first tracepoint" \ + "$trcpt1" \ + "collect gdb_struct1_test" "^$" + +send_gdb "info tracepoints\n" +gdb_expect { + -re "Actions for.* $trcpt1:.*collect gdb_struct1_test.*$gdb_prompt $" { + pass "5.3b: verify actions set for first tracepoint" + } + -re "$gdb_prompt $" { + fail "5.3b: verify actions set for first tracepoint" + } +} + +# +# test end command (all by itself) +# + +# 5.4 end outside of context + +gdb_test "end" "This command cannot be used at the top level." \ + "5.4: 'end' command out of context" + +# 5.5 empty actions (just an end with no other actions) + +gdb_trace_setactions "5.5a: set empty actions for first tracepoint" \ + "$trcpt1" + +send_gdb "info tracepoints\n" +gdb_expect { + -re "No tracepoints.*$gdb_prompt $" { + fail "5.5c: verify NO actions for first tracepoint" + } + -re "Actions for.* $trcpt1:.*$gdb_prompt $" { + fail "5.5c: verify NO actions for first tracepoint" + } + -re "$gdb_prompt $" { + pass "5.5c: verify NO actions for first tracepoint" + } +} + +# 5.6 actions for invalid tracepoint number + +gdb_test "actions [expr $trcpt2 + $trcpt3]" \ + "No tracepoint number [expr $trcpt2 + $trcpt3]." \ + "5.6: actions for invalid tracepoint number" + +# 5.7 invalid action (other than 'collect', 'while-stepping' or 'end') +# "warning: .print gdb_c_test. is not a supported trace.*> $" \ + +gdb_trace_setactions "5.7: invalid action" \ + "$trcpt1" \ + "print gdb_c_test" \ + "warning: .print gdb_c_test. is not a supported trace" + +# 5.8 help actions (collect, while-stepping, end) + +gdb_test "help actions" \ + "Specify the actions to be taken at a tracepoint.*" \ + "5.8a: help actions" + +gdb_test "help collect" \ + "Specify one or more data items to be collected at a tracepoint.*" \ + "5.8b: help collect" + +gdb_test "help while-stepping" \ + "Specify single-stepping behavior at a tracepoint.*" \ + "5.8c: help while-stepping" + +gdb_test "help end" "Ends a list of commands or actions.*" \ + "5.8d: help end" + -- cgit v1.1