;;; -*- 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 #p"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-building-contrib 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")) (: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)) (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)) (defsystem sb-bsd-sockets-tests :depends-on (sb-rt sb-bsd-sockets #-win32 sb-posix) :components ((:file "tests"))) (defmethod perform ((o test-op) (c (eql (find-system :sb-bsd-sockets-tests)))) (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" :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"))))