unit tests update

This commit is contained in:
vaclavt
2022-01-12 20:44:57 +01:00
parent 3cc21b2814
commit 6055d02d89
3 changed files with 29 additions and 13 deletions

View File

@@ -15,18 +15,33 @@
(defun ut::define-test (name exp_list)
(set! ut::tests_list (push ut::tests_list (list name exp_list))))
(defun ut::exec-test (test_name code) (do
(define test_result (eval code))
(if (first test_result)
(do (print (+ (term-green "OK") " -> " test_name))
#t
)
(do (print (+ (term-red "ERR") " -> " test_name))
(print " " (second test_result) " <> " (third test_result))
nil
))
))
(defun ut::run-test (name)
(for t ut::tests_list
(if (= (first t) name)
(ut::exec-test (first t) (second t)))
))
(defun ut::run-tests () (do
(define oks 0)
(define errs 0)
(for t ut::tests_list
(define test_name (first t))
(define test_result (eval (second t)))
(if (index test_result 0)
(do (set! oks (+ oks 1)) (print (+ (term-green "OK") " -> " test_name)))
(do (set! errs (+ errs 1))
(print (+ (term-red "ERR") " -> " test_name))
(print " " (second test_result) " <> " (third test_result))
))
(if (ut::exec-test (first t) (second t))
(set! oks (+ oks 1))
(set! errs (+ errs 1))
)
)
(if (= errs 0)
(print (term-green (+ (string oks) " test(s) OK")))
@@ -34,7 +49,6 @@
))
(define ut::tests_list '())
; TODO (run-test name)
;; example of usage