-(:packages :wolf :wolf-test :sheep)
+(:packages :wolf :wolf-test :sheep :sb-cover)
(:name :wolf
:tasks
((:name :test
:directions (wolf-test:run-all-tests))
+ (:name :coverage :directions
+ (progn
+ (let
+ ((coverage nil)
+ (*error-output* (make-broadcast-stream))
+ (*standard-output* (make-broadcast-stream)))
+ (declaim (optimize sb-cover:store-coverage-data))
+ (asdf:load-system :wolf :force t)
+ (wolf-test:run-all-tests)
+ (setf coverage
+ (apply #'+
+ (mapcar
+ (lambda (coverage-item) (length (remove t (cdr coverage-item) :key #'cdr)))
+ (sb-cover:save-coverage))))
+ (declaim (optimize (sb-cover:store-coverage-data 0)))
+ (asdf:load-system :wolf :force t)
+ ; 39 here is the number of unexecuted forms/branches due to
+ ; error checking that can get triggered during mistakes in development,
+ ; but aren't accessible during normal running (because if they were,
+ ; that's be a bug we needed to fix!)
+ (= coverage 39))))
(:name :wolf :directions
(wolf:pretty-print-check-directory "src"
:copyright-notice "; Copyright .* Frank Duncan \\(frank@consxy.com\\) under AGPL3. See distributed LICENSE.txt."))