Skip tests that send ctrl-c to GDB if nointerrupts target property is set.

2015-12-14  Sandra Loosemore  <sandra@codesourcery.com>

	gdb/testsuite/
	* gdb.base/completion.exp: Skip tests that interrupt GDB with
	ctrl-C if nointerrupts target property is set.
	* gdb.base/double-prompt-target-event-error.exp: Likewise.
	* gdb.base/paginate-after-ctrl-c-running.exp: Likewise.
	* gdb.base/paginate-bg-execution.exp: Likewise.
	* gdb.base/paginate-execution-startup.exp: Likewise.
	* gdb.base/random-signal.exp: Likewise.
	* gdb.base/range-stepping.exp: Likewise.
	* gdb.cp/annota2.exp: Likewise.
	* gdb.cp/annota3.exp: Likewise.
	* gdb.gdb/selftest.exp: Likewise.
	* gdb.threads/continue-pending-status.exp: Likewise.
	* gdb.threads/leader-exit.exp: Likewise.
	* gdb.threads/manythreads.exp: Likewise.
	* gdb.threads/pthreads.exp: Likewise.
	* gdb.threads/schedlock.exp: Likewise.
	* gdb.threads/sigthread.exp: Likewise.
This commit is contained in:
Sandra Loosemore
2015-12-14 15:02:59 -08:00
parent 19d9d4efd1
commit 87a3a92c46
17 changed files with 133 additions and 53 deletions

View File

@ -1,3 +1,23 @@
2015-12-14 Sandra Loosemore <sandra@codesourcery.com>
* gdb.base/completion.exp: Skip tests that interrupt GDB with
ctrl-C if nointerrupts target property is set.
* gdb.base/double-prompt-target-event-error.exp: Likewise.
* gdb.base/paginate-after-ctrl-c-running.exp: Likewise.
* gdb.base/paginate-bg-execution.exp: Likewise.
* gdb.base/paginate-execution-startup.exp: Likewise.
* gdb.base/random-signal.exp: Likewise.
* gdb.base/range-stepping.exp: Likewise.
* gdb.cp/annota2.exp: Likewise.
* gdb.cp/annota3.exp: Likewise.
* gdb.gdb/selftest.exp: Likewise.
* gdb.threads/continue-pending-status.exp: Likewise.
* gdb.threads/leader-exit.exp: Likewise.
* gdb.threads/manythreads.exp: Likewise.
* gdb.threads/pthreads.exp: Likewise.
* gdb.threads/schedlock.exp: Likewise.
* gdb.threads/sigthread.exp: Likewise.
2015-12-11 Don Breazeal <donb@codesourcery.com> 2015-12-11 Don Breazeal <donb@codesourcery.com>
* gdb.base/execl-update-breakpoints.exp (main): Enable for target * gdb.base/execl-update-breakpoints.exp (main): Enable for target

View File

@ -944,7 +944,7 @@ gdb_test_multiple "" "$test" {
gdb_test_no_output "set max-completions unlimited" gdb_test_no_output "set max-completions unlimited"
if {![skip_tui_tests]} { if {![skip_tui_tests] && ![target_info exists gdb,nointerrupts]} {
set test "test completion of layout names" set test "test completion of layout names"
send_gdb "layout\t\t\t" send_gdb "layout\t\t\t"
gdb_test_multiple "" "$test" { gdb_test_multiple "" "$test" {
@ -960,7 +960,7 @@ if {![skip_tui_tests]} {
} }
} }
} }
if {![skip_tui_tests]} { if {![skip_tui_tests] && ![target_info exists gdb,nointerrupts]} {
with_test_prefix "focus command" { with_test_prefix "focus command" {
set test "test completion" set test "test completion"
send_gdb "focus \t\t" send_gdb "focus \t\t"

View File

@ -13,6 +13,11 @@
# 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, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
if [target_info exists gdb,nointerrupts] {
verbose "Skipping double-prompt-target-event-error.exp because of nointerrupts."
return
}
standard_testfile standard_testfile
if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug] == -1} { if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug] == -1} {

View File

@ -13,6 +13,11 @@
# 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, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
if [target_info exists gdb,nointerrupts] {
verbose "Skipping paginate-after-ctrl-c-running.exp because of nointerrupts."
return
}
standard_testfile standard_testfile
if {[build_executable "failed to prepare" $testfile $srcfile debug] == -1} { if {[build_executable "failed to prepare" $testfile $srcfile debug] == -1} {

View File

@ -114,5 +114,7 @@ proc test_bg_execution_pagination_cancel { how } {
} }
test_bg_execution_pagination_return test_bg_execution_pagination_return
test_bg_execution_pagination_cancel "ctrl-c" if ![target_info exists gdb,nointerrupts] {
test_bg_execution_pagination_cancel "ctrl-c"
}
test_bg_execution_pagination_cancel "quit" test_bg_execution_pagination_cancel "quit"

View File

@ -174,7 +174,9 @@ proc test_fg_execution_pagination_cancel { how } {
if {[probe_can_run_cmdline] > 0} { if {[probe_can_run_cmdline] > 0} {
test_fg_execution_pagination_return test_fg_execution_pagination_return
test_fg_execution_pagination_cancel "ctrl-c" if ![target_info exists gdb,nointerrupts] {
test_fg_execution_pagination_cancel "ctrl-c"
}
test_fg_execution_pagination_cancel "quit" test_fg_execution_pagination_cancel "quit"
} }

View File

@ -18,6 +18,12 @@ if [target_info exists gdb,nosignals] {
continue continue
} }
# This test requires sending ^C to interrupt the running target.
if [target_info exists gdb,nointerrupts] {
verbose "Skipping random-signal.exp because of nointerrupts."
return
}
standard_testfile standard_testfile
if {[prepare_for_testing $testfile.exp $testfile $srcfile debug]} { if {[prepare_for_testing $testfile.exp $testfile $srcfile debug]} {

View File

@ -172,42 +172,44 @@ with_test_prefix "loop 2" {
# Check that range stepping works well even when it is interrupted by # Check that range stepping works well even when it is interrupted by
# ctrl-c. # ctrl-c.
with_test_prefix "interrupt" { if ![target_info exists gdb,nointerrupts] {
gdb_test_no_output "set debug remote 1" with_test_prefix "interrupt" {
gdb_test_no_output "set debug remote 1"
send_gdb "next\n" send_gdb "next\n"
sleep 1 sleep 1
send_gdb "\003" send_gdb "\003"
# GDB should send one vCont;r and receive one stop reply for # GDB should send one vCont;r and receive one stop reply for
# SIGINT: # SIGINT:
# --> vCont;rSTART,END (range step) # --> vCont;rSTART,END (range step)
# <-- T02 (SIGINT) # <-- T02 (SIGINT)
set vcont_r_counter 0 set vcont_r_counter 0
set test "send ctrl-c to GDB" set test "send ctrl-c to GDB"
gdb_test_multiple "" $test { gdb_test_multiple "" $test {
-re "vCont;r\[^\r\n\]*\.\.\." { -re "vCont;r\[^\r\n\]*\.\.\." {
incr vcont_r_counter incr vcont_r_counter
exp_continue exp_continue
}
-re "Program received signal SIGINT.*$gdb_prompt $" {
pass $test
}
} }
-re "Program received signal SIGINT.*$gdb_prompt $" { gdb_test_no_output "set debug remote 0"
pass $test
# Check the number of 'vCont;r' packets.
if { $vcont_r_counter == 1 } {
pass "${test}: 1 vCont;r"
} else {
fail "${test}: 1 vCont;r"
} }
}
gdb_test_no_output "set debug remote 0"
# Check the number of 'vCont;r' packets. # Break the loop earlier and continue range stepping.
if { $vcont_r_counter == 1 } { gdb_test "set variable c = 0"
pass "${test}: 1 vCont;r" exec_cmd_expect_vCont_count "next" 1
} else {
fail "${test}: 1 vCont;r"
} }
# Break the loop earlier and continue range stepping.
gdb_test "set variable c = 0"
exec_cmd_expect_vCont_count "next" 1
} }
# Check that range stepping doesn't break software watchpoints. With # Check that range stepping doesn't break software watchpoints. With

View File

@ -262,12 +262,14 @@ gdb_test_multiple "next" "watch triggered on a.x" {
# test: # test:
# annotate-quit # annotate-quit
# #
send_gdb "\003" if ![target_info exists gdb,nointerrupts] {
gdb_expect { send_gdb "\003"
-re "\r\n\032\032error-begin\r\nQuit\r\n\r\n\032\032quit\r\n$gdb_prompt$" \ gdb_expect {
-re "\r\n\032\032error-begin\r\nQuit\r\n\r\n\032\032quit\r\n$gdb_prompt$" \
{ pass "annotate-quit" } { pass "annotate-quit" }
-re ".*$gdb_prompt$" { fail "annotate-quit" } -re ".*$gdb_prompt$" { fail "annotate-quit" }
timeout { fail "annotate-quit (timeout)" } timeout { fail "annotate-quit (timeout)" }
}
} }
# #

View File

@ -177,11 +177,13 @@ gdb_test_multiple "next" "watch triggered on a.x" {
# test: # test:
# annotate-quit # annotate-quit
# #
send_gdb "\003" if ![target_info exists gdb,nointerrupts] {
gdb_expect_list "annotate-quit" "$gdb_prompt$" { send_gdb "\003"
"\r\n\032\032error-begin\r\n" gdb_expect_list "annotate-quit" "$gdb_prompt$" {
"Quit\r\n" "\r\n\032\032error-begin\r\n"
"\r\n\032\032quit\r\n" "Quit\r\n"
"\r\n\032\032quit\r\n"
}
} }
# #

View File

@ -433,17 +433,19 @@ proc test_with_self { executable } {
} }
# kill the xgdb process # kill the xgdb process
set description "send ^C to child process" if ![target_info exists gdb,nointerrupts] {
send_gdb "\003" set description "send ^C to child process"
gdb_expect { send_gdb "\003"
-re "Program received signal SIGINT.*$gdb_prompt $" { gdb_expect {
pass "$description" -re "Program received signal SIGINT.*$gdb_prompt $" {
} pass "$description"
-re ".*$gdb_prompt $" { }
fail "$description" -re ".*$gdb_prompt $" {
} fail "$description"
timeout { }
fail "$description (timeout)" timeout {
fail "$description (timeout)"
}
} }
} }

View File

@ -17,6 +17,11 @@
# thread, then switching to a thread that has a status pending and # thread, then switching to a thread that has a status pending and
# continuing. # continuing.
if [target_info exists gdb,nointerrupts] {
verbose "Skipping continue-pending-status.exp because of nointerrupts."
return
}
standard_testfile standard_testfile
if [prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}] { if [prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}] {

View File

@ -13,6 +13,11 @@
# 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, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
if [target_info exists gdb,nointerrupts] {
verbose "Skipping leader-exit.exp because of nointerrupts."
return
}
# Exit of the thread group leader should not break GDB. # Exit of the thread group leader should not break GDB.
standard_testfile standard_testfile

View File

@ -16,6 +16,11 @@
# This file was written by Jeff Johnston. (jjohnstn@redhat.com) # This file was written by Jeff Johnston. (jjohnstn@redhat.com)
# This test requires sending ^C to interrupt the running target.
if [target_info exists gdb,nointerrupts] {
verbose "Skipping manythreads.exp because of nointerrupts."
return
}
standard_testfile standard_testfile

View File

@ -15,6 +15,11 @@
# This file was written by Fred Fish. (fnf@cygnus.com) # This file was written by Fred Fish. (fnf@cygnus.com)
# This test requires sending ^C to interrupt the running target.
if [target_info exists gdb,nointerrupts] {
verbose "Skipping pthreads.exp because of nointerrupts."
return
}
standard_testfile standard_testfile

View File

@ -18,6 +18,12 @@
# #
# This test covers the various forms of "set scheduler-locking". # This test covers the various forms of "set scheduler-locking".
# This test requires sending ^C to interrupt the running target.
if [target_info exists gdb,nointerrupts] {
verbose "Skipping schedlock.exp because of nointerrupts."
return
}
standard_testfile standard_testfile

View File

@ -37,6 +37,12 @@ gdb_test_multiple "continue" "continue" {
} }
} }
# This test requires sending ^C to interrupt the running target.
if [target_info exists gdb,nointerrupts] {
verbose "Skipping sigthread.exp because of nointerrupts."
return
}
# For this to work we must be sure to consume the "Continuing." # For this to work we must be sure to consume the "Continuing."
# message first, or GDB's signal handler may not be in place. # message first, or GDB's signal handler may not be in place.
after 500 {send_gdb "\003"} after 500 {send_gdb "\003"}