work in progress: forge basics, testing

This commit is contained in:
Helmut Merz 2024-04-20 10:45:01 +02:00
parent d2f708999f
commit 21843546fa
3 changed files with 33 additions and 10 deletions

View file

@ -4,7 +4,8 @@
(defpackage :scopes/forge (defpackage :scopes/forge
(:use :common-lisp) (:use :common-lisp)
(:export #:hello #:new-forge-env #:exec #:add)) (:export #:hello #:new-forge-env #:data-stack #:exec
#:add))
(in-package :scopes/forge) (in-package :scopes/forge)
@ -12,15 +13,27 @@
nil) nil)
(defun exec (fe &rest code) (defun exec (fe &rest code)
nil) code
fe)
(defun data-stack (fe)
fe)
; forge primitives
(defun add (fe) (defun add (fe)
0) (pushd (+ (popd fe) (popd fe)) fe ))
; dummy exampled, to be removed
(defun hello () (defun hello ()
(format t "Hello Common Lisp - 2024-04-19")) (format t "Hello Common Lisp - 2024-04-19"))
(defclass track () ( ; internal definitions
(taskid :initarg :taskid)
(username :initarg :username))) (defun popd (fe)
(pop fe))
(defun pushd (fe v)
(push v fe))

View file

@ -4,7 +4,8 @@
(defpackage :scopes/test-forge (defpackage :scopes/test-forge
(:use :common-lisp) (:use :common-lisp)
(:local-nicknames (:scf :scopes/forge) (:sct :scopes/testing)) (:local-nicknames (:scf :scopes/forge)
(:sct :scopes/testing))
(:export #:run)) (:export #:run))
(in-package :scopes/test-forge) (in-package :scopes/test-forge)
@ -13,5 +14,8 @@
(scf:hello) (scf:hello)
(let ((fe (scf:new-forge-env)) (let ((fe (scf:new-forge-env))
(tst (sct:test-suite))) (tst (sct:test-suite)))
(scf:exec '(fe 4 2 scf:add)) (scf:exec fe '(4 2 scf:add))
(sct:assert-eql tst (car (scf:data-stack fe)) 6)
(format t "~%tst ~a" tst)
(sct:result tst)
)) ))

View file

@ -4,9 +4,15 @@
(defpackage :scopes/testing (defpackage :scopes/testing
(:use :common-lisp) (:use :common-lisp)
(:export #:test-suite)) (:export #:test-suite #:assert-eql #:result))
(in-package :scopes/testing) (in-package :scopes/testing)
(defun test-suite () (defun test-suite ()
nil) (vector nil))
(defun assert-eql (tst have wanted)
(push (eql have wanted) (elt tst 0)))
(defun result (tst)
(elt tst 0))