1.0.16.46: small fixes to tests
authorNikodemus Siivola <nikodemus@random-state.net>
Mon, 26 May 2008 18:27:17 +0000 (18:27 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Mon, 26 May 2008 18:27:17 +0000 (18:27 +0000)
 * Remove the WITH-TIMEOUT from around the final test: it just made it
   brittle, if something caused the threads to take slightly longer.

   Add a comment about a semi-randomly broken :SCHEDULE-STRESS test in
   timers.impure.lisp.

 * Typo in ctor.impure.lisp: UPDATE-INSTANCE-FOR-REDEFINED-CLASS,
   not UPDATE-INSTANCE-FOR-REDIFINED-CLASS. (Thank to Paul Khuong)

tests/ctor.impure.lisp
tests/hash.impure.lisp
tests/timer.impure.lisp
version.lisp-expr

index e8fecb1..3d8e1b4 100644 (file)
@@ -68,7 +68,7 @@
   (make-instance 'one-slot-subclass :b b))
 (compile 'make-one-slot-subclass)
 
-(defmethod update-instance-for-redifined-class
+(defmethod update-instance-for-redefined-class
     ((object one-slot-superclass) added discarded plist &rest initargs)
   (declare (ignore initargs))
   (error "Called U-I-F-R-C on ~A" object))
index 84723e0..c5c9786 100644 (file)
 
 (defvar *cons-here*)
 
+(declaim (notinline args))
+(defun take (&rest args)
+  (declare (ignore args)))
+
 (defmacro alloc (&body body)
   "Execute BODY and try to reduce the chance of leaking a conservative root."
   #-sb-thread
        (sb-thread::wait-on-semaphore ,sem)
        (values-list ,values))))
 
-(defun take (&rest args)
-  (declare (ignore args)))
-
 (with-test (:name (:hash-table :weakness :eql :numbers))
   (flet ((random-number ()
            (random 1000)))
index 29d2fbd..32b245e 100644 (file)
                                        (sb-ext:schedule-timer ticker 0 :repeat-interval 0.00001)
                                        thread)))))))
 
-;;;; OS X doesn't like these being at all, and gives us a SIGSEGV
-;;;; instead of using the Mach expection system! Our or OS X's fault?
-;;;; :/
-
+;;;; FIXME: OS X 10.4 doesn't like these being at all, and gives us a SIGSEGV
+;;;; instead of using the Mach expection system! 10.5 on the other tends to
+;;;; lose() where with interrupt already pending. :/
+;;;;
+;;;; FIXME: This test also occasionally hangs on Linux/x86-64 at least. The
+;;;; common feature is one thread in gc_stop_the_world, and another trying to
+;;;; signal_interrupt_thread, but both (apparently) getting EAGAIN repeatedly.
+;;;; Exactly how or why this is happening remains under investigation -- but
+;;;; it seems plausible that the fast timers simply fill up the interrupt
+;;;; queue completely. (On some occasions the process unwedges itself after
+;;;; a few minutes, but not always.)
 (with-test (:name (:timer :schedule-stress))
   (flet ((test ()
            (let* ((slow-timers (loop for i from 1 upto 100
                                                 do (sb-ext:schedule-timer (make-timer #'one :thread thread) 0.001))))))
           (dolist (thread threads)
             (sched thread)))
-        (with-timeout (truncate goal 100)
-          (mapcar #'sb-thread:join-thread threads))))))
+        (mapcar #'sb-thread:join-thread threads)))))
index e4560c1..949efb3 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.16.45"
+"1.0.16.46"