1.0.41.41: tests: Fix tests for ppc-threading changes.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Sun, 8 Aug 2010 01:14:23 +0000 (01:14 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Sun, 8 Aug 2010 01:14:23 +0000 (01:14 +0000)
  * The variable current_control_stack_pointer is no longer valid
on threaded targets.  Substitute thread_control_stack_size, which
is valid on all targets, fixing alien.impure.lisp.

  * Some dynamic-extent tests currently fail on threaded PPC.
Updated :fails-on information in dynamic-extent.impure.lisp.

  * Test (:timer :parallel-unschedule) locked up my linux/ppc box
when running.  Disabled, fixing timer.impure.lisp.  Interestingly,
while the lockup in question killed the keyboard and the mouse,
briefly pressing the power button caused backlogged events to be
processed, and repeatedly pressing the power button eventually
unlocked the system completely.

  * Test (:interrupt-thread :interrupt-consing-child :again) uses
sb-kernel:*pseudo-atomic-bits*, which is an x86oid-only symbol
(other ports use various parts of reg_ALLOC instead).  Disabled the
test on non-x86oid ports, fixing threads.impure.lisp.

tests/alien.impure.lisp
tests/dynamic-extent.impure.lisp
tests/threads.impure.lisp
tests/timer.impure.lisp
version.lisp-expr

index b327577..096e82a 100644 (file)
@@ -20,8 +20,8 @@
 ;;; In sbcl-0.6.10, Douglas Brebner reported that (SETF EXTERN-ALIEN)
 ;;; was messed up so badly that trying to execute expressions like
 ;;; this signalled an error.
-(setf (sb-alien:extern-alien "current_control_stack_pointer" sb-alien:unsigned)
-      (sb-alien:extern-alien "current_control_stack_pointer" sb-alien:unsigned))
+(setf (sb-alien:extern-alien "thread_control_stack_size" sb-alien:unsigned)
+      (sb-alien:extern-alien "thread_control_stack_size" sb-alien:unsigned))
 
 ;;; bug 133, fixed in 0.7.0.5: Somewhere in 0.pre7.*, C void returns
 ;;; were broken ("unable to use values types here") when
index 75b4cb1..93493d4 100644 (file)
   (setf (gethash 5 *table*) 13)
   (gethash 5 *table*))
 
-(with-test (:name (:no-consing :hash-tables))
+;; This fails on threaded PPC because the hash-table implementation
+;; uses recursive system spinlocks, which cons (see below for test
+;; (:no-consing :spinlock), which also fails on threaded PPC).
+(with-test (:name (:no-consing :hash-tables) :fails-on (and :ppc :sb-thread))
   (assert-no-consing (test-hash-table)))
 
 ;;; with-spinlock and with-mutex should use DX and not cons
     (true *mutex*)))
 
 #+sb-thread
-(with-test (:name (:no-consing :mutex))
+(with-test (:name (:no-consing :mutex) :fails-on :ppc)
   (assert-no-consing (test-mutex)))
 
 #+sb-thread
-(with-test (:name (:no-consing :spinlock))
+(with-test (:name (:no-consing :spinlock) :fails-on :ppc)
   (assert-no-consing (test-spinlock)))
 
 \f
index 0e43d62..4205a00 100644 (file)
 
 (format t "~&multi interrupt test done~%")
 
+#+(or x86 x86-64) ;; x86oid-only, see internal commentary.
 (with-test (:name (:interrupt-thread :interrupt-consing-child :again))
   #+darwin
   (error "Hangs on Darwin.")
index df6c7ec..9886cb5 100644 (file)
 ;;; running out of stack (due to repeating timers being rescheduled
 ;;; before they ran) and dying threads were open interrupts.
 #+sb-thread
-(with-test (:name (:timer :parallel-unschedule))
+(with-test (:name (:timer :parallel-unschedule) :fails-on :ppc)
   #+darwin
   (error "Prone to hang on Darwin due to interrupt issues.")
+  #+ppc
+  (error "Prone to hang the host on linux/ppc for unknown reasons.")
   (let ((timer (sb-ext:make-timer (lambda () 42) :name "parallel schedulers"))
         (other nil))
     (flet ((flop ()
index a57a651..86ae801 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.41.40"
+"1.0.41.41"