aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.threads/non-ldr-exc-2.exp')
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exc-2.exp24
1 files changed, 19 insertions, 5 deletions
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp b/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp
index 9386153..8b170ec 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp
+++ b/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp
@@ -29,11 +29,14 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-proc do_test { lock_sched } {
- with_test_prefix "lock-sched$lock_sched" {
+proc do_test { lock_sched nonstop } {
+ with_test_prefix "lock-sched=$lock_sched,non-stop=$nonstop" {
global executable
- clean_restart ${executable}
+ save_vars { GDBFLAGS } {
+ append GDBFLAGS " -ex \"set non-stop $nonstop\""
+ clean_restart ${executable}
+ }
if ![runto_main] {
return -1
@@ -42,6 +45,10 @@ proc do_test { lock_sched } {
gdb_breakpoint [gdb_get_line_number "break-here"]
gdb_continue_to_breakpoint "break-here" ".* break-here .*"
+ if { $nonstop == "on" } {
+ gdb_test "thread 2" "Switching.*"
+ }
+
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 left"
@@ -59,5 +66,12 @@ proc do_test { lock_sched } {
}
}
-do_test 0
-do_test 1
+foreach nonstop {"on" "off"} {
+ foreach schedlock {"on" "off"} {
+ if {$schedlock == "on" && $nonstop == "on"} {
+ # Schedule locking has no effect in nonstop mode.
+ continue
+ }
+ do_test $schedlock $nonstop
+ }
+}