commit fbfcc3bb1e69bde6a82a51bafd7df1505f00fc1c
parent acfad31438f67fbd66398801cd9b6874deeb00f2
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Thu, 21 Oct 2010 18:09:12 +0200
Deftestvar dans test-unitaire + erreur dans le load du main.
Diffstat:
2 files changed, 32 insertions(+), 21 deletions(-)
diff --git a/main.lisp b/main.lisp
@@ -5,7 +5,7 @@
(cons (copytree (car l))
(copytree (cdr l)))))
(load "environnement")
-(load "VM/instruction")
+(load "instructions")
;; ...
(run-test t)
;(print-env-stack exemple-env-stack)
diff --git a/test-unitaire.lisp b/test-unitaire.lisp
@@ -1,39 +1,50 @@
+;; TODO : exploser tout ça en plein de petites fonctions, c'est trop gros...
;; Mutation cons.
(let ((tests nil))
(defmacro deftest (module test expected)
(if (not (assoc module tests))
- (setf tests (cons `(,module . ()) tests)))
+ (setf tests (cons `(,module . (() . ())) tests)))
(let ((mod-tests (assoc module tests)))
- (setf (cdr mod-tests)
+ (setf (cddr mod-tests)
(cons (cons test expected)
- (cdr mod-tests))))
+ (cddr mod-tests))))
nil)
(defmacro run-test (&rest modules)
(let ((failures 0)
(modules (if (eq T (car modules))
(mapcar #'car tests)
modules)))
- (if (every (lambda (mod)
- (if (member (car mod) modules)
- (progn
- (format t "Module ~w :~&" (car mod))
- (mapcar (lambda (test)
- (let* ((res (eval (car test)))
- (expect (eval (cdr test))))
- (if (equal expect res)
- (format t " [SUCCESS] ~w~&" (car test))
- (progn (format t " [FAILURE] Test : ~w~& got : ~w~& expected : ~w~&" (car test) res expect)
- (setf failures (+ failures 1))))))
- (reverse (cdr mod)))))
- (if (not (= failures 0))
- (format t "Module ~w failed ~w tests. Stopping.~&" (car mod) failures))
- (= failures 0))
- tests)
+ (if (every
+ (lambda (mod)
+ (if (member (car mod) modules)
+ (progn
+ (format t "~&Module ~w :~&" (car mod))
+ (let ((vars (cadr mod)))
+ (mapcar (lambda (test)
+ (let* ((res (eval `(let ,vars ,(car test))))
+ (expect (eval `(let ,vars ,(cdr test)))))
+ (if (equal expect res)
+ (format t "~& [SUCCESS] ~w~&" (car test))
+ (progn (format t " [FAILURE] Test : ~w~& got : ~w~& expected : ~w~&" (car test) res expect)
+ (setf failures (+ failures 1))))))
+ (reverse (cddr mod))))))
+ (if (not (= failures 0))
+ (format t "Module ~w failed ~w tests. Stopping.~&" (car mod) failures))
+ (= failures 0))
+ tests)
(progn (format t "All modules passed all tests successfully.~&")
t)
nil)))
(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
;(deftest environnement nil nil)