;;;; tests.scm (use lua test) (test-group "lua test" (let* ((L (lua-open)) (f (lua-eval L "function(x, y) return x * y, x + y end"))) (test-assert L) (test-assert f) (test "results" '(6 5) (receive (lua-call f 3 2)) ) (let ((t (lua-run-string L "return {a=99}"))) (test-assert t) (test "ref table" 99 (lua-table-ref t "a") ) (test "set+ref table" "b" (begin (set! (lua-table-ref t "a") "b") (lua-table-ref t "a")) ) (let ((f2 (lua-eval L "function(t) return t.a end"))) (test "pass & use table" "b" (lua-call f2 t)) (test-assert (set! (lua-global-ref L "abc") '#(a))) (test "get global" "a" (lua-table-ref (lua-global-ref L "abc") 1) ) (test "get global via Lua" "a" (lua-table-ref (lua-eval L "abc") 1) ) (test-assert (lua-close L)) )) )) (test-exit)