From 62e8cf70b09b73b8a94c303c28d4f4721135bae9 Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Mon, 26 May 2008 18:27:17 +0000 Subject: [PATCH] 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) --- tests/ctor.impure.lisp | 2 +- tests/hash.impure.lisp | 7 ++++--- tests/timer.impure.lisp | 18 ++++++++++++------ version.lisp-expr | 2 +- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/tests/ctor.impure.lisp b/tests/ctor.impure.lisp index e8fecb1..3d8e1b4 100644 --- a/tests/ctor.impure.lisp +++ b/tests/ctor.impure.lisp @@ -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)) diff --git a/tests/hash.impure.lisp b/tests/hash.impure.lisp index 84723e0..c5c9786 100644 --- a/tests/hash.impure.lisp +++ b/tests/hash.impure.lisp @@ -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))) diff --git a/tests/timer.impure.lisp b/tests/timer.impure.lisp index 29d2fbd..32b245e 100644 --- a/tests/timer.impure.lisp +++ b/tests/timer.impure.lisp @@ -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))))) diff --git a/version.lisp-expr b/version.lisp-expr index e4560c1..949efb3 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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" -- 1.7.10.4