aboutsummaryrefslogtreecommitdiff
path: root/tests/macros.lisp
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2025-02-21 13:53:33 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2025-02-21 13:53:33 +0000
commitdc1f3d89706d8a038747b065110546c9351e7796 (patch)
tree218243bf7a8b981af8c3690148aa92b54660aa83 /tests/macros.lisp
parentcc53e6ec42316262e9ad87230cb6892949d7a42b (diff)
downloadcantedraw-dc1f3d89706d8a038747b065110546c9351e7796.tar.gz
cantedraw-dc1f3d89706d8a038747b065110546c9351e7796.tar.bz2
cantedraw-dc1f3d89706d8a038747b065110546c9351e7796.zip
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.
Diffstat (limited to 'tests/macros.lisp')
-rw-r--r--tests/macros.lisp29
1 files changed, 29 insertions, 0 deletions
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 <https://www.gnu.org/licenses/>.
+
+;;; 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))))