update copyright year printed by GDB, GDBserver and gdbreplay.
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.threads / non-ldr-exc-4.exp
index 7fce0ef3934ec113dd67baeee844f8557ad0cf7e..4d7e97ad5a1690a1fcfeba65374c3a0e5f6e485b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 2009-2012 Free Software Foundation, Inc.
+# Copyright 2009-2015 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
@@ -23,38 +23,52 @@ if { [is_remote target] } then {
     continue
 }
 
-set testfile "non-ldr-exc-4"
-set srcfile ${testfile}.c
+standard_testfile
 set executable ${testfile}
-set binfile ${objdir}/${subdir}/${executable}
 
 if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
     return -1
 }
 
-proc do_test { lock_sched } { with_test_prefix " lock-sched$lock_sched:" {
-    global executable
+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
-    }
+       if ![runto_main] {
+           return -1
+       }
 
-    gdb_breakpoint [gdb_get_line_number "break-here"]
-    gdb_continue_to_breakpoint "break-here" ".* break-here .*"
+       gdb_breakpoint [gdb_get_line_number "break-here"]
+       gdb_continue_to_breakpoint "break-here" ".* break-here .*"
 
-    # Also test with sched-lock to make sure we can follow the
-    # non-leader thread execing even though the main thread wasn't
-    # resumed before the exec.
-    if { $lock_sched } {
-       gdb_test_no_output "set scheduler-locking on"
-    }
+       # Also test with sched-lock to make sure we can follow the
+       # non-leader thread execing even though the main thread wasn't
+       # resumed before the exec.
+       if { $lock_sched } {
+           gdb_test_no_output "set scheduler-locking on"
+       }
 
-    gdb_test "continue" \
-       ".*is executing new program.*Breakpoint 1, main.* at .*" \
-       "continue over exec"
-}}
+       if { $nonstop == "on" } {
+           gdb_test "thread 2" "Switching.*"
+       }
 
-do_test 0
-do_test 1
+       gdb_test "continue" \
+           ".*is executing new program.*Breakpoint 1, main.* at .*" \
+           "continue over exec"
+    }
+}
+
+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
+  }
+}
This page took 0.025776 seconds and 4 git commands to generate.