X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fthreads.impure.lisp;h=0d5453b2fc817b3ab01da3afe7790001595e33f7;hb=cf65b9804d28c5e6ee2fa53cbac143c2f87f108c;hp=cbebcd8e20a7a145c688b1077b733100406e1d51;hpb=b9e94e326f79ab01e56cb437e424ce5ea489471f;p=sbcl.git diff --git a/tests/threads.impure.lisp b/tests/threads.impure.lisp index cbebcd8..0d5453b 100644 --- a/tests/threads.impure.lisp +++ b/tests/threads.impure.lisp @@ -419,7 +419,9 @@ (force-output) (sb-ext:quit :unix-status 1))))))) -(let* ((nanosleep-errno (progn +;; (nanosleep -1 0) does not fail on FreeBSD +(let* (#-freebsd + (nanosleep-errno (progn (sb-unix:nanosleep -1 0) (sb-unix::get-errno))) (open-errno (progn @@ -428,6 +430,7 @@ (sb-unix::get-errno))) (threads (list + #-freebsd (exercise-syscall (lambda () (sb-unix:nanosleep -1 0)) nanosleep-errno) (exercise-syscall (lambda () (open "no-such-file" :if-does-not-exist nil)) @@ -765,3 +768,22 @@ (wait-for-threads (list changer test)))))))) (format t "~&funcallable-instance test done~%") + +(defun random-type (n) + `(integer ,(random n) ,(+ n (random n)))) + +(defun subtypep-hash-cache-test () + (dotimes (i 10000) + (let ((type1 (random-type 500)) + (type2 (random-type 500))) + (let ((a (subtypep type1 type2))) + (dotimes (i 100) + (assert (eq (subtypep type1 type2) a)))))) + (format t "ok~%") + (force-output)) + +(with-test (:name '(:hash-cache :subtypep)) + (dotimes (i 10) + (sb-thread:make-thread #'subtypep-hash-cache-test))) + +(format t "hash-cache tests done~%")