Create a unit test system

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.
This commit is contained in:
2025-02-21 13:53:33 +00:00
parent cc53e6ec42
commit dc1f3d8970
4 changed files with 76 additions and 2 deletions

View File

@@ -2,6 +2,7 @@
: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
@@ -17,6 +18,22 @@
: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))