X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-posix%2Fsb-posix.asd;h=325d8f4526ecaf7b5e71c1186fd835e86706c161;hb=5bf941f419b6cd275feb3ee44ca264596fbd9e8e;hp=052e5317a968609f504be827569d93a83c122b9e;hpb=84500b84beb8a03298beaf731d36faee5323b4d5;p=sbcl.git diff --git a/contrib/sb-posix/sb-posix.asd b/contrib/sb-posix/sb-posix.asd index 052e531..325d8f4 100644 --- a/contrib/sb-posix/sb-posix.asd +++ b/contrib/sb-posix/sb-posix.asd @@ -1,20 +1,49 @@ ;;; -*- Lisp -*- -(require :sb-grovel) +(cl:eval-when (:compile-toplevel :load-toplevel :execute) + (asdf:oos 'asdf:load-op :sb-grovel)) (defpackage #:sb-posix-system (:use #:asdf #:cl #:sb-grovel)) (in-package #:sb-posix-system) (defsystem sb-posix :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 ("defpackage")) - (sb-grovel:grovel-constants-file - "constants" - :package :sb-posix :depends-on ("defpackage")) - (:file "interface" :depends-on ("constants" "macros")))) + (:file "designator" :depends-on ("defpackage")) + (:file "macros" :depends-on ("designator")) + (sb-grovel:grovel-constants-file + "constants" + :do-not-grovel #.(progn #-sb-building-contrib t) + :package :sb-posix :depends-on ("defpackage")) + (:file "interface" :depends-on ("constants" "macros" "designator")))) -#| -(defmethod perform ((o test-op) (c (eql (find-system :sb-grovel)))) - t) +(defsystem sb-posix-tests + :depends-on (sb-rt) + :components ((:file "posix-tests"))) -|# \ No newline at end of file +(defmethod perform :after ((o load-op) (c (eql (find-system :sb-posix)))) + (provide 'sb-posix)) + +(defmethod perform ((o test-op) (c (eql (find-system :sb-posix)))) + (operate 'load-op 'sb-posix-tests) + (operate 'test-op 'sb-posix-tests)) + +(defmethod perform ((o test-op) (c (eql (find-system :sb-posix-tests)))) + (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!")))))