From 21843546fad74d6b7cca17ba9276b7b7f3717336 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sat, 20 Apr 2024 10:45:01 +0200 Subject: [PATCH] work in progress: forge basics, testing --- forge/forge.lisp | 25 +++++++++++++++++++------ test/test-forge.lisp | 8 ++++++-- testing.lisp | 10 ++++++++-- 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/forge/forge.lisp b/forge/forge.lisp index 80d19cf..03a7e59 100644 --- a/forge/forge.lisp +++ b/forge/forge.lisp @@ -4,7 +4,8 @@ (defpackage :scopes/forge (:use :common-lisp) - (:export #:hello #:new-forge-env #:exec #:add)) + (:export #:hello #:new-forge-env #:data-stack #:exec + #:add)) (in-package :scopes/forge) @@ -12,15 +13,27 @@ nil) (defun exec (fe &rest code) - nil) + code + fe) + +(defun data-stack (fe) + fe) + +; forge primitives (defun add (fe) - 0) + (pushd (+ (popd fe) (popd fe)) fe )) + +; dummy exampled, to be removed (defun hello () (format t "Hello Common Lisp - 2024-04-19")) -(defclass track () ( - (taskid :initarg :taskid) - (username :initarg :username))) +; internal definitions + +(defun popd (fe) + (pop fe)) + +(defun pushd (fe v) + (push v fe)) diff --git a/test/test-forge.lisp b/test/test-forge.lisp index b8672ee..793c329 100644 --- a/test/test-forge.lisp +++ b/test/test-forge.lisp @@ -4,7 +4,8 @@ (defpackage :scopes/test-forge (:use :common-lisp) - (:local-nicknames (:scf :scopes/forge) (:sct :scopes/testing)) + (:local-nicknames (:scf :scopes/forge) + (:sct :scopes/testing)) (:export #:run)) (in-package :scopes/test-forge) @@ -13,5 +14,8 @@ (scf:hello) (let ((fe (scf:new-forge-env)) (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) )) diff --git a/testing.lisp b/testing.lisp index fbc7597..adf437a 100644 --- a/testing.lisp +++ b/testing.lisp @@ -4,9 +4,15 @@ (defpackage :scopes/testing (:use :common-lisp) - (:export #:test-suite)) + (:export #:test-suite #:assert-eql #:result)) (in-package :scopes/testing) (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))