-# Copyright (C) 2007, 2011-2012 Free Software Foundation, Inc.
+# Copyright (C) 2007-2019 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
# You should have received a copy of the GNU General Public License
# 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.
standard_testfile
gdb_test "info threads" \
"\r\n\[ \t\]*Id\[ \t\]+Target\[ \t\]+Id\[ \t\]+Frame\[ \t\]*\r\n\\* 2 *Thread \[^\r\n\]* at \[^\r\n\]*" \
- "Single thread has been left"
+ "single thread has been left"
+
+# Test that ctrl-c works even if the leader has exited.
+
+set test "continue for ctrl-c"
+gdb_test_multiple "continue" $test {
+ -re "Continuing" {
+ pass $test
+ }
+}
+
+sleep 1
+
+send_gdb "\003"
+
+set test "caught interrupt"
+gdb_test_multiple "" $test {
+ -re "Thread .* received signal SIGINT.*$gdb_prompt $" {
+ pass $test
+ }
+}