diff options
Diffstat (limited to 'gdb/testsuite/gdb.threads/non-ldr-exc-4.exp')
-rw-r--r-- | gdb/testsuite/gdb.threads/non-ldr-exc-4.exp | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-4.exp b/gdb/testsuite/gdb.threads/non-ldr-exc-4.exp index a89b818b6d0..4d7e97ad5a1 100644 --- a/gdb/testsuite/gdb.threads/non-ldr-exc-4.exp +++ b/gdb/testsuite/gdb.threads/non-ldr-exc-4.exp @@ -30,11 +30,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 @@ -50,11 +53,22 @@ proc do_test { lock_sched } { gdb_test_no_output "set scheduler-locking on" } + if { $nonstop == "on" } { + gdb_test "thread 2" "Switching.*" + } + gdb_test "continue" \ ".*is executing new program.*Breakpoint 1, main.* at .*" \ "continue over exec" } } -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 + } +} |