Add test coverage check
[wolf] / .candle
diff --git a/.candle b/.candle
index a69e7fd10d73b9285a0ef73c0eebd067535d644d..977edcadcd359446780e72e04bf9b54f677b31d5 100644 (file)
--- a/.candle
+++ b/.candle
@@ -1,11 +1,33 @@
-(:packages :style-checker :style-checker-test :docgen)
-(:name :style-checker
+(:packages :wolf :wolf-test :sheep :sb-cover)
+(:name :wolf
  :tasks
  ((:name :test
-   :directions (style-checker-test:run-all-tests))
-  (:name :checkstyle :directions
-   (syntax-checker:pretty-print-check-directory "src"))
-  (:name :docgen :directions
-   (docgen:pretty-print-validate-packages :syntax-checker))))
+   :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."))
+  (:name :sheep :directions
+   (sheep:pretty-print-validate-packages :wolf))))
 
 ; vim:ft=lisp