Index: gdb/testsuite/lib/trace-support.exp |
diff --git a/gdb/testsuite/lib/trace-support.exp b/gdb/testsuite/lib/trace-support.exp |
index 35a8a9db38801f11a807d375bbc519c1c5e57c53..4ffd01cdb75f5eb4a442193788353ade72d19494 100644 |
--- a/gdb/testsuite/lib/trace-support.exp |
+++ b/gdb/testsuite/lib/trace-support.exp |
@@ -1,4 +1,4 @@ |
-# Copyright (C) 1998, 2007-2012 Free Software Foundation, Inc. |
+# Copyright (C) 1998-2013 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 |
@@ -69,7 +69,7 @@ proc gdb_delete_tracepoints {} { |
send_gdb "delete tracepoints\n" |
gdb_expect 30 { |
-re "Delete all tracepoints.*y or n.*$" { |
- send_gdb "y\n"; |
+ send_gdb "y\n" |
exp_continue |
} |
-re ".*$gdb_prompt $" { # This happens if there were no tracepoints } |
@@ -86,85 +86,99 @@ proc gdb_delete_tracepoints {} { |
} |
} |
-# |
-# Procedure: gdb_trace_setactions |
# Define actions for a tracepoint. |
# Arguments: |
+# actions_command -- the command used to create the actions. |
+# either "actions" or "commands". |
# testname -- identifying string for pass/fail output |
-# tracepoint -- to which tracepoint do these actions apply? (optional) |
+# tracepoint -- to which tracepoint(s) do these actions apply? (optional) |
# args -- list of actions to be defined. |
# Returns: |
# zero -- success |
# non-zero -- failure |
-proc gdb_trace_setactions { testname tracepoint args } { |
- global gdb_prompt; |
+proc gdb_trace_setactions_command { actions_command testname tracepoint args } { |
+ global gdb_prompt |
- set state 0; |
- set passfail "pass"; |
- send_gdb "actions $tracepoint\n"; |
- set expected_result ""; |
+ set state 0 |
+ set passfail "pass" |
+ send_gdb "$actions_command $tracepoint\n" |
+ set expected_result "" |
gdb_expect 5 { |
-re "No tracepoint number .*$gdb_prompt $" { |
fail $testname |
- return 1; |
+ return 1 |
} |
-re "Enter actions for tracepoint $tracepoint.*>" { |
if { [llength $args] > 0 } { |
- set lastcommand "[lindex $args $state]"; |
- send_gdb "[lindex $args $state]\n"; |
- incr state; |
- set expected_result [lindex $args $state]; |
- incr state; |
+ set lastcommand "[lindex $args $state]" |
+ send_gdb "[lindex $args $state]\n" |
+ incr state |
+ set expected_result [lindex $args $state] |
+ incr state |
} else { |
- send_gdb "end\n"; |
+ send_gdb "end\n" |
} |
- exp_continue; |
+ exp_continue |
} |
-re "\(.*\)\[\r\n\]+\[ \t]*>$" { |
if { $expected_result != "" } { |
- regsub "^\[^\r\n\]+\[\r\n\]+" "$expect_out(1,string)" "" out; |
+ regsub "^\[^\r\n\]+\[\r\n\]+" "$expect_out(1,string)" "" out |
if ![regexp $expected_result $out] { |
- set passfail "fail"; |
+ set passfail "fail" |
} |
- set expected_result ""; |
+ set expected_result "" |
} |
if { $state < [llength $args] } { |
- send_gdb "[lindex $args $state]\n"; |
- incr state; |
- set expected_result [lindex $args $state]; |
- incr state; |
+ send_gdb "[lindex $args $state]\n" |
+ incr state |
+ set expected_result [lindex $args $state] |
+ incr state |
} else { |
- send_gdb "end\n"; |
- set expected_result ""; |
+ send_gdb "end\n" |
+ set expected_result "" |
} |
- exp_continue; |
+ exp_continue |
} |
-re "\(.*\)$gdb_prompt $" { |
if { $expected_result != "" } { |
if ![regexp $expected_result $expect_out(1,string)] { |
- set passfail "fail"; |
+ set passfail "fail" |
} |
- set expected_result ""; |
+ set expected_result "" |
} |
if { [llength $args] < $state } { |
- set passfail "fail"; |
+ set passfail "fail" |
} |
} |
default { |
- set passfail "fail"; |
+ set passfail "fail" |
} |
} |
if { $testname != "" } { |
- $passfail $testname; |
+ $passfail $testname |
} |
if { $passfail == "pass" } then { |
- return 0; |
+ return 0 |
} else { |
- return 1; |
+ return 1 |
} |
} |
+# Define actions for a tracepoint, using the "actions" command. See |
+# gdb_trace_setactions_command. |
+# |
+proc gdb_trace_setactions { testname tracepoint args } { |
+ eval gdb_trace_setactions_command "actions" {$testname} {$tracepoint} $args |
+} |
+ |
+# Define actions for a tracepoint, using the "commands" command. See |
+# gdb_trace_setactions_command. |
+# |
+proc gdb_trace_setcommands { testname tracepoint args } { |
+ eval gdb_trace_setactions_command "commands" {$testname} {$tracepoint} $args |
+} |
+ |
# |
# Procedure: gdb_tfind_test |
# Find a specified trace frame. |
@@ -179,32 +193,32 @@ proc gdb_trace_setactions { testname tracepoint args } { |
# |
proc gdb_tfind_test { testname tfind_arg exp_res args } { |
- global gdb_prompt; |
+ global gdb_prompt |
if { "$args" != "" } { |
- set expr "$exp_res"; |
- set exp_res "$args"; |
+ set expr "$exp_res" |
+ set exp_res "$args" |
} else { |
- set expr "(int) \$trace_frame"; |
+ set expr "(int) \$trace_frame" |
} |
- set passfail "fail"; |
+ set passfail "fail" |
gdb_test "tfind $tfind_arg" "" "" |
- send_gdb "printf \"x \%d x\\n\", $expr\n"; |
+ send_gdb "printf \"x \%d x\\n\", $expr\n" |
gdb_expect 10 { |
-re "x (-*\[0-9\]+) x" { |
if { $expect_out(1,string) == $exp_res } { |
- set passfail "pass"; |
+ set passfail "pass" |
} |
- exp_continue; |
+ exp_continue |
} |
-re "$gdb_prompt $" { } |
} |
- $passfail "$testname"; |
+ $passfail "$testname" |
if { $passfail == "pass" } then { |
- return 0; |
+ return 0 |
} else { |
- return 1; |
+ return 1 |
} |
} |
@@ -218,18 +232,18 @@ proc gdb_tfind_test { testname tfind_arg exp_res args } { |
# |
proc gdb_readexpr { gdb_expr } { |
- global gdb_prompt; |
+ global gdb_prompt |
- set result -1; |
+ set result -1 |
send_gdb "print $gdb_expr\n" |
gdb_expect 5 { |
-re "\[$\].*= (\[0-9\]+).*$gdb_prompt $" { |
- set result $expect_out(1,string); |
+ set result $expect_out(1,string) |
} |
-re "$gdb_prompt $" { } |
default { } |
} |
- return $result; |
+ return $result |
} |
# |
@@ -241,12 +255,12 @@ proc gdb_readexpr { gdb_expr } { |
# |
proc gdb_gettpnum { tracepoint } { |
- global gdb_prompt; |
+ global gdb_prompt |
if { $tracepoint != "" } { |
gdb_test "trace $tracepoint" "" "" |
} |
- return [gdb_readexpr "\$tpnum"]; |
+ return [gdb_readexpr "\$tpnum"] |
} |
@@ -262,9 +276,9 @@ proc gdb_gettpnum { tracepoint } { |
# |
proc gdb_find_function_baseline { func_name } { |
- global gdb_prompt; |
+ global gdb_prompt |
- set baseline -1; |
+ set baseline -1 |
send_gdb "list $func_name\n" |
# gdb_expect { |
@@ -286,20 +300,20 @@ proc gdb_find_function_baseline { func_name } { |
# |
proc gdb_find_recursion_test_baseline { filename } { |
- global gdb_prompt; |
+ global gdb_prompt |
- set baseline -1; |
+ set baseline -1 |
gdb_test "list $filename:1" "" "" |
send_gdb "search gdb_recursion_test line 0\n" |
gdb_expect { |
-re "(\[0-9\]+)\[\t \]+\{.*line 0.*$gdb_prompt $" { |
- set baseline $expect_out(1,string); |
+ set baseline $expect_out(1,string) |
} |
-re "$gdb_prompt $" { } |
default { } |
} |
- return $baseline; |
+ return $baseline |
} |
# Return the location of the IPA library. |