Add tests using lisp-unit2

These are basic, place-holder tests; not too
useful at the moment.
This commit is contained in:
Jaidyn Ann 2024-05-27 22:49:05 -05:00
parent b0d3aa2300
commit 172a10fdc5
4 changed files with 101 additions and 2 deletions

View File

@ -18,3 +18,11 @@ build:
--eval '(ql:quickload :eksd/unix)' \
--eval '(asdf:make :eksd/unix)' \
--eval '(quit)'
test:
$(LISP) --load eksd.asd \
--eval '(ql:quickload :eksd)' \
--eval '(ql:quickload :eksd/unix)' \
--eval '(asdf:test-system :eksd)' \
--eval '(asdf:test-system :eksd/unix)' \
--eval '(quit)'

View File

@ -7,7 +7,9 @@
:homepage "https://hak.xwx.moe/jadedctrl/eksd"
:description "For reading files into hex— `xxd`-like with text-tables."
:depends-on ()
:components ((:file "src/eksd")))
:components ((:file "src/eksd"))
:in-order-to ((test-op (test-op "eksd/tests"))
(build-op (build-op "eksd/unix"))))
(asdf:defsystem "eksd/unix"
:version "0.11"
@ -20,4 +22,40 @@
:build-pathname "eksd"
:entry-point "eksd/unix:main"
:depends-on (:cl-strings :eksd :unix-opts)
:components ((:file "src/unix")))
:components ((:file "src/unix"))
:in-order-to ((test-op (test-op "eksd/unix/tests"))))
;;; Tests
;;; —————————————————————————————————————
(asdf:defsystem "eksd/tests"
:version "0.11"
:license "GPLv3"
:author "Jaidyn Ann <jadedctrl@posteo.at>"
:homepage "https://hak.xwx.moe/jadedctrl/eksd"
:description "Tests for the the eksd package."
:depends-on (:eksd :lisp-unit2)
:components ((:file "t/eksd")))
(asdf:defsystem "eksd/unix/tests"
:version "0.11"
:license "GPLv3"
:author "Jaidyn Ann <jadedctrl@posteo.at>"
:homepage "https://hak.xwx.moe/jadedctrl/eksd"
:description "Tests for the eksd.unix package."
:depends-on (:eksd/unix :lisp-unit2)
:components ((:file "t/unix")))
;; Following methods borrowed from lisp-unit2s documentation:
;; https://github.com/AccelerationNet/lisp-unit2/blob/master/README.md#asdf
(defmethod asdf:perform ((o asdf:test-op) (c (eql (asdf:find-system :eksd/tests))))
(eval (read-from-string
"(lisp-unit2:with-summary ()
(lisp-unit2:run-tests :package :eksd/tests))")))
(defmethod asdf:perform ((o asdf:test-op) (c (eql (asdf:find-system :eksd/unix/tests))))
(eval (read-from-string
"(lisp-unit2:with-summary ()
(lisp-unit2:run-tests :package :eksd/unix/tests))")))

26
t/eksd.lisp Normal file
View File

@ -0,0 +1,26 @@
;;;; eksd.tests: Tests for eksd package.
;; Copyright © 2024 Jaidyn Ann <jadedctrl@posteo.at>
;;
;; This program is free software: you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation, either version 3 of
;; the License, or (at your option) any later version.
;;
;; 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 for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <https://www.gnu.org/licenses/>.
(defpackage :eksd/tests
(:use :cl :lisp-unit2)
(:export :char-hex.space))
(in-package :eksd/tests)
(define-test char-hex.space
(:tags '(char-hex))
(assert-equal (eksd::char-hex #\space) "20"))

27
t/unix.lisp Normal file
View File

@ -0,0 +1,27 @@
;;;; eksd.unix.tests: Tests for eksds UNIX frontend package.
;; Copyright © 2024 Jaidyn Ann <jadedctrl@posteo.at>
;;
;; This program is free software: you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation, either version 3 of
;; the License, or (at your option) any later version.
;;
;; 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 for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <https://www.gnu.org/licenses/>.
(defpackage :eksd/unix/tests
(:use :cl :lisp-unit2)
(:export :de-tail))
(in-package :eksd/unix/tests)
(define-test de-tail
(:tags '(de-tail))
(assert-equal (eksd/unix::de-tail '(1 2 3))
'(1 2)))