Add WITH-TEST, improve test for DOCUMENTATION on (SETF ...)
[sbcl.git] / contrib / sb-posix / sb-posix.asd
blob9963183e0378ab73266774e224439588796979ec
1 ;;; -*-  Lisp -*-
2 (defsystem sb-posix
3   :defsystem-depends-on (sb-grovel)
4   #+sb-building-contrib :pathname
5   #+sb-building-contrib #p"SYS:CONTRIB;SB-POSIX;"
6   :components ((:file "defpackage")
7                (:file "designator" :depends-on ("defpackage"))
8                (:file "macros" :depends-on ("designator"))
9                (:sb-grovel-constants-file "constants"
10                 :package :sb-posix :depends-on  ("defpackage"))
11                (:file "interface" :depends-on ("constants" "macros" "designator")))
12   :perform (load-op :after (o c) (provide 'sb-posix))
13   :perform (test-op (o c) (test-system 'sb-posix/tests)))
15 (defsystem sb-posix/tests
16   :depends-on (sb-rt)
17   #+sb-building-contrib :pathname
18   #+sb-building-contrib #p"SYS:CONTRIB;SB-POSIX;"
19   :components ((:file "posix-tests"))
20   :perform
21   (test-op (o c)
22     (funcall (intern "DO-TESTS" (find-package "SB-RT")))
23     (let ((failures (funcall (intern "PENDING-TESTS" "SB-RT")))
24           (ignored-failures (loop for sym being the symbols of :sb-posix-tests
25                                   if (search ".ERROR" (symbol-name sym))
26                                     collect sym)))
27       (cond
28         ((null failures)
29          t)
30         ((null (set-difference failures ignored-failures))
31          (warn "~@<some POSIX implementations return incorrect error values for ~
32                 failing calls, but there is legitimate variation between ~
33                 implementations too.  If you think the errno ~
34                 from your platform is valid, please contact the sbcl ~
35                 developers; otherwise, please submit a bug report to your ~
36                 kernel distributor~@:>")
37          t)
38         (t
39          (error "non-errno tests failed!"))))))