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

@ -68,6 +68,8 @@ utils/local_install.sh
(read-url "https://api.nasdaq.com/api/calendar/dividends/") ; hangs in sslclient.cpp line 132
### TODO
- better formating of help
- unify -f and -run options
- add debug support, at least call stack
- multiline editing (see kilocpp editor)
- execute system command should capture stderr

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

View File

@ -138,11 +138,11 @@
(ut::define-test "result of create table" '(ut::assert-equal ((0 "table created" 0)) (usql "create table a (i integer not null, s varchar(64), f float null, d date null, b boolean)")))
(ut::define-test "result tcp-client" '(ut::assert-equal "(print \"ABCD\")" (tcp-client "127.0.0.1" 7778 "abcd")))
(ut::define-test "result of (tcp-client \"abcd\")" '(ut::assert-equal "(print \"ABCD\")" (tcp-client "127.0.0.1" 7778 "abcd")))
(ut::define-test "result t(find-val-in-list \"a\")" '(ut::assert-equal '("av" "avv") (find-val-in-list fvil_list "a")))
(ut::define-test "result t(find-val-in-list \"b\")" '(ut::assert-equal "bv" (find-val-in-list fvil_list "b")))
(ut::define-test "result t(find-val-in-list 31)" '(ut::assert-equal 32 (find-val-in-list fvil_list 31)))
(ut::define-test "result of (find-val-in-list \"a\")" '(ut::assert-equal '("av" "avv") (find-val-in-list fvil_list "a")))
(ut::define-test "result of (find-val-in-list \"b\")" '(ut::assert-equal "bv" (find-val-in-list fvil_list "b")))
(ut::define-test "result of (find-val-in-list 31)" '(ut::assert-equal 32 (find-val-in-list fvil_list 31)))
(ut::define-test "result of (max (10 9 8 7 6 5 4 3 2 1))" '(ut::assert-equal 10 (max '(10 9 8 7 6 5 4 3 2 1))))
(ut::define-test "result of (max ())" '(ut::assert-equal nil (max '())))