From dc1f3d89706d8a038747b065110546c9351e7796 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Fri, 21 Feb 2025 13:53:33 +0000 Subject: 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. --- tests/macros.lisp | 29 +++++++++++++++++++++++++++++ tests/main.lisp | 24 ++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 tests/macros.lisp create mode 100644 tests/main.lisp (limited to 'tests') diff --git a/tests/macros.lisp b/tests/macros.lisp new file mode 100644 index 0000000..e86fbb3 --- /dev/null +++ b/tests/macros.lisp @@ -0,0 +1,29 @@ +;;; main.lisp - 2025-02-16 + +;; Copyright (C) 2025 Aryadev Chavali + +;; This program is distributed in the hope that it will be useful, but WITHOUT +;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +;; FOR A PARTICULAR PURPOSE. See the GNU General Public License Version 2 for +;; details. + +;; You may distribute and modify this code under the terms of the GNU General +;; Public License Version 2, which you should have received a copy of along with +;; this program. If not, please go to . + +;;; Code: + +(defpackage cantedraw/tests/macros + (:use :cl :cantedraw.lib.macros + :parachute)) + +(in-package :cantedraw/tests/macros) + +(define-test macro-test) + +(define-test (macro-test "-->") + (true (null (--> x))) + (is eq 'a (--> x 'a)) + (is eq 2 (--> x 1 (1+ x))) + (is eq 2 (--> x 1 1+)) + (is string= "World!" (--> _ "Hello" (format nil "~a World!" _) (subseq _ 6)))) diff --git a/tests/main.lisp b/tests/main.lisp new file mode 100644 index 0000000..0e8e462 --- /dev/null +++ b/tests/main.lisp @@ -0,0 +1,24 @@ +;;; main.lisp - 2025-02-20 + +;; Copyright (C) 2025 Aryadev Chavali + +;; This program is distributed in the hope that it will be useful, but WITHOUT +;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +;; FOR A PARTICULAR PURPOSE. See the GNU General Public License Version 2 for +;; details. + +;; You may distribute and modify this code under the terms of the GNU General +;; Public License Version 2, which you should have received a copy of along with +;; this program. If not, please go to . + + +;;; Code: + +(defpackage cantedraw/tests/main + (:use :cl :parachute)) + +(in-package :cantedraw/tests/main) + +(define-test all + :serial t + :depends-on ((cantedraw/tests/macros macro-test))) -- cgit v1.2.3-13-gbd6f