From c5a4fa662e17aa85d895cde4ae3869d8074312e2 Mon Sep 17 00:00:00 2001 From: bd Date: Sun, 16 Mar 2025 01:43:19 -0400 Subject: Added and configured fiveam test suite --- Makefile | 6 ++++++ README.md | 1 + rva.asd | 27 ++++++++++++++++++++++----- src/lex.lisp | 6 +----- src/main.lisp | 16 ++++++++++++++++ src/package.lisp | 7 +++++++ src/rva.lisp | 19 ------------------- t/main.lisp | 14 ++++++++++++++ t/package.lisp | 5 +++++ 9 files changed, 72 insertions(+), 29 deletions(-) create mode 100644 src/main.lisp create mode 100644 src/package.lisp delete mode 100644 src/rva.lisp create mode 100644 t/main.lisp create mode 100644 t/package.lisp diff --git a/Makefile b/Makefile index 7ae7ab8..672d9ff 100644 --- a/Makefile +++ b/Makefile @@ -12,5 +12,11 @@ all: run: @ ./bin/$(BIN) +test: + $(LISP) --non-interactive \ + --eval '(require "asdf")' \ + --eval '(asdf:load-asd (merge-pathnames "rva.asd" (uiop:getcwd)))' \ + --eval '(asdf:test-system :rva/tests)' + clean: rm -f ./bin/$(BIN) diff --git a/README.md b/README.md index 0650ad9..bc9852f 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ - SBCL - ASDF +- fiveam ## To compile diff --git a/rva.asd b/rva.asd index a3f8d5b..9325d66 100644 --- a/rva.asd +++ b/rva.asd @@ -1,21 +1,38 @@ -(defsystem "rva" +#.(unless (or #+asdf3.1 (version<= "3.1" (asdf-version))) + (error "You need ASDF >= 3.1 to load this system correctly.")) + +(asdf:defsystem #:rva ;; :author "" ;; :license "" :version "0.1" :homepage "https://github.com/bdunahu/rva" + :description "Assembler for the RISC-V[ECTOR] mini-ISA." :source-control (:git "git@github.com:bdunahu/rva.git") :depends-on ("uiop") :components ((:module "src" - :serial t - :components ((:file "lex") - (:file "rva")))) + :serial t + :components ((:file "package") + (:file "lex") + (:file "main")))) :long-description #.(uiop:read-file-string (uiop:subpathname *load-pathname* "README.md")) :in-order-to ((test-op (test-op "rva/tests"))) :build-operation "program-op" :build-pathname "bin/rva" - :entry-point "rva::main") + :entry-point "rva:main") + +(asdf:defsystem #:rva/tests + ;; :author "" + ;; :license "" + :description "rva's test suite" + :depends-on (:rva + :fiveam) + :components ((:module "t" + :serial t + :components ((:file "package") + (:file "main")))) + :perform (test-op (o s) (uiop:symbol-call :rva-tests :test-rva))) (defmethod asdf:perform ((o asdf:image-op) (c asdf:system)) (uiop:dump-image (asdf:output-file o c) diff --git a/src/lex.lisp b/src/lex.lisp index 2f89bb5..5b9c957 100644 --- a/src/lex.lisp +++ b/src/lex.lisp @@ -1,8 +1,4 @@ -(defpackage :lex - (:use :cl) - (:export :stub)) - -(in-package :lex) +(in-package #:lex) (defun stub () (format t "Hello, world!~%")) diff --git a/src/main.lisp b/src/main.lisp new file mode 100644 index 0000000..c22d869 --- /dev/null +++ b/src/main.lisp @@ -0,0 +1,16 @@ +(in-package #:rva) + +(defparameter *version* "v0.1") + +(defun error-cli (message) + (format *error-output* + "~a~%Usage: + risc_vector file +Options: + --version, -v: print version information~%" + message) + (sb-ext:exit :code 1)) + +(defun main () + (lex:stub) + (error-cli "foobar")) diff --git a/src/package.lisp b/src/package.lisp new file mode 100644 index 0000000..cb337b7 --- /dev/null +++ b/src/package.lisp @@ -0,0 +1,7 @@ +(defpackage #:rva + (:use #:cl) + (:export #:main)) + +(defpackage #:lex + (:use #:cl) + (:export #:stub)) diff --git a/src/rva.lisp b/src/rva.lisp deleted file mode 100644 index 83b0fe1..0000000 --- a/src/rva.lisp +++ /dev/null @@ -1,19 +0,0 @@ -(defpackage :rva - (:use :cl)) - -(in-package :rva) - -(defparameter *version* "v0.1") - -(defun error-cli (message) - (format *error-output* - "~a~%Usage: - risc_vector file -Options: - --version, -v: print version information~%" - message) - (sb-ext:exit :code 1)) - -(defun main () - (lex:stub) - (error-cli "foobar")) diff --git a/t/main.lisp b/t/main.lisp new file mode 100644 index 0000000..11646b3 --- /dev/null +++ b/t/main.lisp @@ -0,0 +1,14 @@ +(in-package #:rva-tests) + +(def-suite all-tests + :description "The master suite of rva tests.") + +(in-suite all-tests) + +(defun test-rva () + (run! 'all-tests)) + +(test dummy-tests + "Just a placeholder." + (is (listp (list 1 2))) + (is (= 5 (+ 2 3)))) diff --git a/t/package.lisp b/t/package.lisp new file mode 100644 index 0000000..3581978 --- /dev/null +++ b/t/package.lisp @@ -0,0 +1,5 @@ +(defpackage #:rva-tests + (:use #:cl #:fiveam) + (:export #:run! + #:test-rva + #:all-tests)) -- cgit v1.2.3