(defmacro test-module (module) (let ((name (symbol->string module))) `(progn (princ (format "[TEST] %s\n" ,name)) (load (format "tests/%s.lisp" ,name)) (princ (format "[PASS] %s\n" ,name))))) (test-module math) (test-module symbol) (test-module eq) (test-module arithmetic) (test-module error) (test-module logic) (test-module tailcall) (test-module control-flow) (test-module lambda) (test-module comment) (test-module macro) (test-module let-binding) (test-module string) (test-module list) (princ "\n\nTest with intensive GC:\n\n") (_alwaysgc #t) (test-module math) (test-module symbol) (test-module eq) (test-module arithmetic) (test-module error) (test-module logic) (test-module tailcall) (test-module control-flow) (test-module lambda) (test-module comment) (test-module macro) (test-module let-binding) (test-module string) (exit)