X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-posix%2Fsb-posix.asd;h=9963183e0378ab73266774e224439588796979ec;hb=25c1769e30ff7404b52a9be663626d87f8ff75bc;hp=9fffc35bf47a13ffad7ed3a0bd99b9c34f473ed6;hpb=1f7401c39a46466c307938c8f6cf7db224741981;p=sbcl.git diff --git a/contrib/sb-posix/sb-posix.asd b/contrib/sb-posix/sb-posix.asd index 9fffc35..9963183 100644 --- a/contrib/sb-posix/sb-posix.asd +++ b/contrib/sb-posix/sb-posix.asd @@ -1,20 +1,39 @@ ;;; -*- Lisp -*- -(require :sb-grovel) -(defpackage #:sb-posix-system (:use #:asdf #:cl #:sb-grovel)) -(in-package #:sb-posix-system) - (defsystem sb-posix - :depends-on (sb-grovel) - :components ((:file "defpackage") - (:file "designator" :depends-on ("defpackage")) - (:file "macros" :depends-on ("designator")) - (sb-grovel:grovel-constants-file - "constants" - :package :sb-posix :depends-on ("defpackage")) - (:file "interface" :depends-on ("constants" "macros" "designator")))) - -(defmethod perform :after ((o load-op) (c (eql (find-system :sb-posix)))) - (provide 'sb-posix)) + :defsystem-depends-on (sb-grovel) + #+sb-building-contrib :pathname + #+sb-building-contrib #p"SYS:CONTRIB;SB-POSIX;" + :components ((:file "defpackage") + (:file "designator" :depends-on ("defpackage")) + (:file "macros" :depends-on ("designator")) + (:sb-grovel-constants-file "constants" + :package :sb-posix :depends-on ("defpackage")) + (:file "interface" :depends-on ("constants" "macros" "designator"))) + :perform (load-op :after (o c) (provide 'sb-posix)) + :perform (test-op (o c) (test-system 'sb-posix/tests))) -(defmethod perform ((o test-op) (c (eql (find-system :sb-posix)))) - t) +(defsystem sb-posix/tests + :depends-on (sb-rt) + #+sb-building-contrib :pathname + #+sb-building-contrib #p"SYS:CONTRIB;SB-POSIX;" + :components ((:file "posix-tests")) + :perform + (test-op (o c) + (funcall (intern "DO-TESTS" (find-package "SB-RT"))) + (let ((failures (funcall (intern "PENDING-TESTS" "SB-RT"))) + (ignored-failures (loop for sym being the symbols of :sb-posix-tests + if (search ".ERROR" (symbol-name sym)) + collect sym))) + (cond + ((null failures) + t) + ((null (set-difference failures ignored-failures)) + (warn "~@") + t) + (t + (error "non-errno tests failed!"))))))