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)))))
|