2003-05-08 Jeff Johnston <jjohnstn@redhat.com>
authorJeff Johnston <jjohnstn@redhat.com>
Thu, 8 May 2003 19:23:29 +0000 (19:23 +0000)
committerJeff Johnston <jjohnstn@redhat.com>
Thu, 8 May 2003 19:23:29 +0000 (19:23 +0000)
        * gdb.threads/schedlock.exp: Remove assumption that all threads
        will run in a particular small time slice.  Also ensure we break
        in one of the child threads rather than the main thread.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.threads/schedlock.exp

index c53111d29038b2bf2f371c7007d6dc68158084eb..22ac56a3c1c2648311cb975652df9a8644a5a935 100644 (file)
@@ -1,3 +1,9 @@
+2003-05-08  Jeff Johnston  <jjohnstn@redhat.com>
+
+       * gdb.threads/schedlock.exp: Remove assumption that all threads 
+       will run in a particular small time slice.  Also ensure we break 
+       in one of the child threads rather than the main thread.
+
 2003-05-07  Jim Blandy  <jimb@redhat.com>
 
        Add support for assembly source testing on the s390x.
index 28298c684a93bdfc800287c6abbc61524c103c42..44785808ce3becdf2a4e2a4f31232b5327836f43 100644 (file)
@@ -112,8 +112,8 @@ proc my_continue { msg } {
 
   stop_process "stop all threads ($msg)"
 
-  # Make sure we're in one of the looping threads.
-  gdb_breakpoint [gdb_get_line_number "schedlock.exp: main loop"]
+  # Make sure we're in one of the non-main looping threads.
+  gdb_breakpoint [concat [gdb_get_line_number "schedlock.exp: main loop"] " if arg != 5"]
   gdb_continue_to_breakpoint "return to loop ($msg)"
   delete_breakpoints
 }
@@ -230,12 +230,11 @@ if {$curthread == $newthread} {
 set start_args $cont_args
 set cont_args [get_args]
 
+set num_other_threads 0
 for {set i 0} {[expr $i < 6]} {set i [expr $i + 1]} {
   if {[lindex $start_args $i] == [lindex $cont_args $i]} {
     if {$i == $curthread} {
       fail "current thread stepped (didn't run)"
-    } else {
-      fail "other thread $i ran (didn't run) (1)"
     }
   } else {
     if {$i == $curthread} {
@@ -245,10 +244,15 @@ for {set i 0} {[expr $i < 6]} {set i [expr $i + 1]} {
            fail "current thread stepped (wrong amount)"
        }
     } else {
-      pass "other thread $i ran (1)"
+      set num_other_threads [expr $num_other_threads + 1]
     }
   }
 }
+if {$num_other_threads > 0} {
+  pass "other threads ran (1)"
+} else {
+  fail "other threads ran (no other threads ran) (1)"
+}
 
 # Test continue with scheduler locking
 gdb_test "set scheduler-locking on"  ""