X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-bsd-sockets%2Fsb-bsd-sockets.asd;h=cc5af7d43d7a436c48937c19cf7b8884c049310a;hb=HEAD;hp=f3051e96a81877d7d6519a2e0edd46627bccadf1;hpb=1bc83d01795e2ff1c1c0116880c90ba6e2d1272b;p=sbcl.git diff --git a/contrib/sb-bsd-sockets/sb-bsd-sockets.asd b/contrib/sb-bsd-sockets/sb-bsd-sockets.asd index f3051e9..cc5af7d 100644 --- a/contrib/sb-bsd-sockets/sb-bsd-sockets.asd +++ b/contrib/sb-bsd-sockets/sb-bsd-sockets.asd @@ -1,60 +1,53 @@ ;;; -*- Lisp -*- -(eval-when (:compile-toplevel :load-toplevel :execute) - (require :sb-grovel)) -(defpackage #:sb-bsd-sockets-system (:use #:asdf #:sb-grovel #:cl)) -(in-package #:sb-bsd-sockets-system) (defsystem sb-bsd-sockets - :version "0.58" - :depends-on (sb-grovel) - #+sb-building-contrib :pathname - #+sb-building-contrib "SYS:CONTRIB;SB-BSD-SOCKETS;" - :components ((:file "defpackage") - (:file "split" :depends-on ("defpackage")) - #+win32 - (:file "win32-lib") - #-win32 (sb-grovel:grovel-constants-file - "constants" - :package :sockint - :do-not-grovel #.(progn #-sb-building-contrib t) - :depends-on ("defpackage")) - #+win32 (sb-grovel:grovel-constants-file - "win32-constants" - :package :sockint - :do-not-grovel (progn #-sb-compiling-contribs t) - :depends-on ("defpackage" "win32-lib")) - #+win32 (:file "win32-sockets" - :depends-on ("win32-constants")) - (:file "sockets" - :depends-on #-win32 ("constants") - #+win32 ("win32-sockets")) - (:file "sockopt" :depends-on ("sockets")) - (:file "inet" :depends-on ("sockets" "split")) - (:file "local" :depends-on ("sockets" "split")) - (:file "name-service" :depends-on ("sockets")) - (:file "misc" :depends-on ("sockets")) + :version "0.58" + :defsystem-depends-on (sb-grovel) + #+sb-building-contrib :pathname + #+sb-building-contrib #p"SYS:CONTRIB;SB-BSD-SOCKETS;" + :components + ((:file "defpackage") + (:file "split" :depends-on ("defpackage")) + (:file "win32-lib" :if-feature :win32) + (:sb-grovel-constants-file "constants" :package :sockint + :depends-on ("defpackage") :if-feature (:not :win32)) + (:sb-grovel-constants-file "win32-constants" :package + :sockint :depends-on ("defpackage" "win32-lib") :if-feature :win32) + (:file "win32-sockets" + :depends-on ("win32-constants") :if-feature :win32) + (:file "sockets" :depends-on ("constants" "win32-sockets")) + (:file "sockopt" :depends-on ("sockets")) + (:file "inet" :depends-on ("sockets" "split")) + (:file "local" :depends-on ("sockets" "split")) + (:file "name-service" :depends-on ("sockets")) + (:file "misc" :depends-on ("sockets")) + (:static-file "NEWS") + ;; (:static-file "INSTALL") + ;; (:static-file "README") + ;; (:static-file "index.html") + (:static-file "TODO")) + :perform (load-op :after (o c) (provide 'sb-bsd-sockets)) + :perform (test-op (o c) (test-system 'sb-bsd-sockets/tests))) - (:static-file "NEWS") - ;; (:static-file "INSTALL") - ;; (:static-file "README") - ;; (:static-file "index" :pathname "index.html") - (:static-file "TODO"))) - -(defmethod perform :after ((o load-op) (c (eql (find-system :sb-bsd-sockets)))) - (provide 'sb-bsd-sockets)) - -#-win32 -(defmethod perform ((o test-op) (c (eql (find-system :sb-bsd-sockets)))) - (operate 'load-op 'sb-bsd-sockets-tests) - (operate 'test-op 'sb-bsd-sockets-tests)) - -#-win32 -(defsystem sb-bsd-sockets-tests +(defsystem sb-bsd-sockets/tests :depends-on (sb-rt sb-bsd-sockets #-win32 sb-posix) - :components ((:file "tests"))) - -#-win32 -(defmethod perform ((o test-op) (c (eql (find-system :sb-bsd-sockets-tests)))) - (or (funcall (intern "DO-TESTS" (find-package "SB-RT"))) - (error "test-op failed"))) - + :components ((:file "tests")) + :perform (test-op (o c) + (multiple-value-bind (soft strict pending) + (funcall (intern "DO-TESTS" (find-package "SB-RT"))) + (declare (ignorable pending)) + (fresh-line) + (unless strict + #+sb-testing-contrib + ;; We create TEST-PASSED from a shell script if tests passed. But + ;; since the shell script only `touch'es it, we can actually create + ;; it ahead of time -- as long as we're certain that tests truly + ;; passed, hence the check for SOFT. + (when soft + (with-open-file (s #p"SYS:CONTRIB;SB-BSD-SOCKETS;TEST-PASSED.TEST-REPORT" + :direction :output) + (dolist (pend pending) + (format s "Expected failure: ~A~%" pend)))) + (warn "ignoring expected failures in test-op")) + (unless soft + (error "test-op failed with unexpected failures")))))