From: Nikodemus S. <de...@us...> - 2008-05-26 18:27:20
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv10317/tests Modified Files: ctor.impure.lisp hash.impure.lisp timer.impure.lisp Log Message: 1.0.16.46: small fixes to tests * 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) Index: ctor.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/ctor.impure.lisp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ctor.impure.lisp 16 Feb 2008 10:34:45 -0000 1.1 +++ ctor.impure.lisp 26 May 2008 18:27:17 -0000 1.2 @@ -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: hash.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/hash.impure.lisp,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- hash.impure.lisp 27 Nov 2006 08:54:17 -0000 1.12 +++ hash.impure.lisp 26 May 2008 18:27:17 -0000 1.13 @@ -268,6 +268,10 @@ (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 @@ -288,9 +292,6 @@ (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: timer.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/timer.impure.lisp,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- timer.impure.lisp 13 Mar 2008 10:32:44 -0000 1.10 +++ timer.impure.lisp 26 May 2008 18:27:17 -0000 1.11 @@ -184,10 +184,17 @@ (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 @@ -228,5 +235,4 @@ 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))))) |