Setup cantedraw/tests with a test-system record, as well as linking it back to cantedraw so we can run test-system on cantedraw and run the tests. Using parachute, we can setup a suite of unit tests for each package. For each package in src/ or lib/ we'll write a separate unit test suite with tests for all the public exposing functionality. I've setup a main suite in cantedraw/tests/main which will depend on each of the unit test suites so we can run the tests all at once. Currently we have one test for the --> macro.
43 lines
1.4 KiB
Common Lisp
43 lines
1.4 KiB
Common Lisp
(asdf:defsystem "cantedraw"
|
|
:author "Aryadev Chavali <aryadev@aryadevchavali.com>"
|
|
:license "GPL-2"
|
|
:depends-on (:alexandria)
|
|
:in-order-to ((asdf:test-op (asdf:test-op :cantedraw/tests)))
|
|
:components ((:file "packages")
|
|
(:module "lib"
|
|
:components
|
|
((:file "macros")
|
|
(:file "functions")))
|
|
(:module "src"
|
|
:components
|
|
((:file "model")
|
|
(:file "player")
|
|
(:file "game")
|
|
(:file "main"))))
|
|
:build-operation "program-op"
|
|
:build-pathname "bin/cantedraw"
|
|
:entry-point "cantedraw.main:start")
|
|
|
|
(asdf:defsystem "cantedraw/tests"
|
|
:author "Aryadev Chavali <aryadev@aryadevchavali.com>"
|
|
:license "GPL-2"
|
|
:depends-on (:cantedraw
|
|
:parachute)
|
|
:components ((:module "tests"
|
|
:components
|
|
((:file "macros")
|
|
;; (:file "functions")
|
|
;; (:file "model")
|
|
;; (:file "player")
|
|
;; (:file "game")
|
|
(:file "main"))))
|
|
:perform (test-op (op c) (uiop:symbol-call :parachute :test
|
|
:cantedraw/tests/main)))
|
|
|
|
;; Compress image for smaller binary size.
|
|
#+nil
|
|
(defmethod asdf:perform ((o asdf:image-op) (c asdf:system))
|
|
(uiop:dump-image (asdf:output-file o c)
|
|
:executable t
|
|
:compression 9))
|