unit tests update
This commit is contained in:
parent
3cc21b2814
commit
6055d02d89
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 '())))
|
||||
|
|
|
|||
Loading…
Reference in New Issue