Deftestvar dans test-unitaire + erreur dans le load du main.
This commit is contained in:
parent
acfad31438
commit
fbfcc3bb1e
|
@ -5,7 +5,7 @@
|
||||||
(cons (copytree (car l))
|
(cons (copytree (car l))
|
||||||
(copytree (cdr l)))))
|
(copytree (cdr l)))))
|
||||||
(load "environnement")
|
(load "environnement")
|
||||||
(load "VM/instruction")
|
(load "instructions")
|
||||||
;; ...
|
;; ...
|
||||||
(run-test t)
|
(run-test t)
|
||||||
;(print-env-stack exemple-env-stack)
|
;(print-env-stack exemple-env-stack)
|
||||||
|
|
|
@ -1,39 +1,50 @@
|
||||||
|
;; TODO : exploser tout ça en plein de petites fonctions, c'est trop gros...
|
||||||
;; Mutation cons.
|
;; Mutation cons.
|
||||||
(let ((tests nil))
|
(let ((tests nil))
|
||||||
(defmacro deftest (module test expected)
|
(defmacro deftest (module test expected)
|
||||||
(if (not (assoc module tests))
|
(if (not (assoc module tests))
|
||||||
(setf tests (cons `(,module . ()) tests)))
|
(setf tests (cons `(,module . (() . ())) tests)))
|
||||||
(let ((mod-tests (assoc module tests)))
|
(let ((mod-tests (assoc module tests)))
|
||||||
(setf (cdr mod-tests)
|
(setf (cddr mod-tests)
|
||||||
(cons (cons test expected)
|
(cons (cons test expected)
|
||||||
(cdr mod-tests))))
|
(cddr mod-tests))))
|
||||||
nil)
|
nil)
|
||||||
(defmacro run-test (&rest modules)
|
(defmacro run-test (&rest modules)
|
||||||
(let ((failures 0)
|
(let ((failures 0)
|
||||||
(modules (if (eq T (car modules))
|
(modules (if (eq T (car modules))
|
||||||
(mapcar #'car tests)
|
(mapcar #'car tests)
|
||||||
modules)))
|
modules)))
|
||||||
(if (every (lambda (mod)
|
(if (every
|
||||||
(if (member (car mod) modules)
|
(lambda (mod)
|
||||||
(progn
|
(if (member (car mod) modules)
|
||||||
(format t "Module ~w :~&" (car mod))
|
(progn
|
||||||
(mapcar (lambda (test)
|
(format t "~&Module ~w :~&" (car mod))
|
||||||
(let* ((res (eval (car test)))
|
(let ((vars (cadr mod)))
|
||||||
(expect (eval (cdr test))))
|
(mapcar (lambda (test)
|
||||||
(if (equal expect res)
|
(let* ((res (eval `(let ,vars ,(car test))))
|
||||||
(format t " [SUCCESS] ~w~&" (car test))
|
(expect (eval `(let ,vars ,(cdr test)))))
|
||||||
(progn (format t " [FAILURE] Test : ~w~& got : ~w~& expected : ~w~&" (car test) res expect)
|
(if (equal expect res)
|
||||||
(setf failures (+ failures 1))))))
|
(format t "~& [SUCCESS] ~w~&" (car test))
|
||||||
(reverse (cdr mod)))))
|
(progn (format t " [FAILURE] Test : ~w~& got : ~w~& expected : ~w~&" (car test) res expect)
|
||||||
(if (not (= failures 0))
|
(setf failures (+ failures 1))))))
|
||||||
(format t "Module ~w failed ~w tests. Stopping.~&" (car mod) failures))
|
(reverse (cddr mod))))))
|
||||||
(= failures 0))
|
(if (not (= failures 0))
|
||||||
tests)
|
(format t "Module ~w failed ~w tests. Stopping.~&" (car mod) failures))
|
||||||
|
(= failures 0))
|
||||||
|
tests)
|
||||||
(progn (format t "All modules passed all tests successfully.~&")
|
(progn (format t "All modules passed all tests successfully.~&")
|
||||||
t)
|
t)
|
||||||
nil)))
|
nil)))
|
||||||
(defun show-test ()
|
(defun show-test ()
|
||||||
tests))
|
tests)
|
||||||
|
(defmacro deftestvar (module nom valeur)
|
||||||
|
(if (not (assoc module tests))
|
||||||
|
(setf tests (cons `(,module . (() . ())) tests)))
|
||||||
|
(let ((mod-vars (assoc module tests)))
|
||||||
|
(setf (cadr mod-vars)
|
||||||
|
(cons (list nom valeur)
|
||||||
|
(cadr mod-vars))))
|
||||||
|
nil))
|
||||||
|
|
||||||
;; Test de debugage du test unitaire
|
;; Test de debugage du test unitaire
|
||||||
;(deftest environnement nil nil)
|
;(deftest environnement nil nil)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user