X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fhash.impure.lisp;h=db4c5fd131aacc43328fc9df9f2b5ae6d7b50378;hb=9304704f68a18894fa8eb985b387465e5d25e1d5;hp=119c9f14b2b0d3f19c7ff3da3322987b8f15b887;hpb=146ca8325e1d9e206a6c14e76442543267dbbc51;p=sbcl.git diff --git a/tests/hash.impure.lisp b/tests/hash.impure.lisp index 119c9f1..db4c5fd 100644 --- a/tests/hash.impure.lisp +++ b/tests/hash.impure.lisp @@ -261,7 +261,6 @@ ;;; This test works reliably on non-conservative platforms and ;;; somewhat reliably on conservative platforms with threads. -#+(or (not (or x86 x86-64)) sb-thread) (progn (defparameter *ht* nil) @@ -285,14 +284,14 @@ (sem (gensym))) `(let ((,sem (sb-thread::make-semaphore)) ,values) - (sb-thread:make-thread (lambda () - (setq ,values - (multiple-value-list (progn ,@body))) - (sb-thread::signal-semaphore ,sem))) + (make-join-thread (lambda () + (setq ,values + (multiple-value-list (progn ,@body))) + (sb-thread::signal-semaphore ,sem))) (sb-thread::wait-on-semaphore ,sem) (values-list ,values)))) -(with-test (:name (:hash-table :weakness :eql :numbers)) +(with-test (:name (:hash-table :weakness :eql :numbers) :skipped-on '(and :c-stack-is-control-stack (not :sb-thread))) (flet ((random-number () (random 1000))) (loop for weakness in '(nil :key :value :key-and-value :key-or-value) do @@ -331,7 +330,7 @@ (format stream "Hash: ~S~%" (sb-impl::hash-table-hash-vector ht)) (force-output stream)) -(with-test (:name (:hash-table :weakness :removal)) +(with-test (:name (:hash-table :weakness :removal) :skipped-on '(and :c-stack-is-control-stack (not :sb-thread))) (loop for test in '(eq eql equal equalp) do (format t "test: ~A~%" test) (loop for weakness in '(:key :value :key-and-value :key-or-value) @@ -358,7 +357,7 @@ (return))) (gc :full t)))))) -(with-test (:name (:hash-table :weakness :string-interning)) +(with-test (:name (:hash-table :weakness :string-interning) :skipped-on '(and :c-stack-is-control-stack (not :sb-thread))) (let ((ht (make-hash-table :test 'equal :weakness :key)) (s "a")) (setf (gethash s ht) s) @@ -366,7 +365,7 @@ (assert (eq (gethash (copy-seq s) ht) s)))) ;;; see if hash_vector is not written when there is none ... -(with-test (:name (:hash-table :weakness :eq)) +(with-test (:name (:hash-table :weakness :eq) :skipped-on '(and :c-stack-is-control-stack (not :sb-thread))) (loop repeat 10 do (let ((index (random 2000))) (let ((first (+ most-positive-fixnum (mod (* index 31) 9))) @@ -377,7 +376,7 @@ hash-table))))) ;; used to crash in gc -(with-test (:name (:hash-table :weakness :keep)) +(with-test (:name (:hash-table :weakness :keep) :skipped-on '(and :c-stack-is-control-stack (not :sb-thread))) (loop repeat 2 do (let ((h1 (make-hash-table :weakness :key :test #'equal)) (keep ()))