summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile6
-rw-r--r--README.md1
-rw-r--r--rva.asd27
-rw-r--r--src/lex.lisp6
-rw-r--r--src/main.lisp (renamed from src/rva.lisp)5
-rw-r--r--src/package.lisp7
-rw-r--r--t/main.lisp14
-rw-r--r--t/package.lisp5
8 files changed, 57 insertions, 14 deletions
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/rva.lisp b/src/main.lisp
index 83b0fe1..c22d869 100644
--- a/src/rva.lisp
+++ b/src/main.lisp
@@ -1,7 +1,4 @@
-(defpackage :rva
- (:use :cl))
-
-(in-package :rva)
+(in-package #:rva)
(defparameter *version* "v0.1")
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/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))