(load "~/quicklisp/setup.lisp") (ql:register-local-projects) (ql:quickload :cl-tty :silent t) (ql:quickload :fiveam :silent t) ;; Load all test files (dolist (f '("src/backend/tests.lisp" "src/backend/modern-tests.lisp" "src/layout/tests.lisp" "src/components/box-tests.lisp" "src/components/dirty-tests.lisp" "src/components/render-tests.lisp" "src/components/theme-tests.lisp" "tests/input-tests.lisp" "tests/scrollbox-tabbar-tests.lisp" "tests/select-tests.lisp" "tests/markdown-tests.lisp" "tests/dialog-tests.lisp" "tests/mouse-tests.lisp" "tests/slot-tests.lisp" "tests/framebuffer-tests.lisp" "tests/integration-tests.lisp")) (load f)) ;; Run all test suites, exit non-zero if any fails (let ((all-passed t)) (dolist (suite '((:cl-tty-backend-test "BACKEND-SUITE") (:cl-tty-box-test "BOX-SUITE") (:cl-tty-input-test "INPUT-SUITE") (:cl-tty-scrollbox-test "SCROLLBOX-SUITE") (:cl-tty-select-test "SELECT-SUITE") (:cl-tty-markdown-test :cl-tty-markdown-test) (:cl-tty-dialog-test "DIALOG-SUITE") (:cl-tty-mouse-test "MOUSE-SUITE") (:cl-tty-slot-test "SLOT-SUITE") (:cl-tty-layout-test "LAYOUT-SUITE") (:cl-tty-modern-backend-test "MODERN-BACKEND-SUITE") (:cl-tty-framebuffer-test "FRAMEBUFFER-SUITE") (:cl-tty-integration-test "INTEGRATION-SUITE"))) (let* ((pkg (find-package (first suite))) (suite-name (second suite)) (s (etypecase suite-name (keyword (find-symbol (string suite-name) :keyword)) (string (find-symbol suite-name pkg))))) (format t "~&=== ~a ===~%" (first suite)) (if s (let ((result (fiveam:run s))) (fiveam:explain! result) (unless (fiveam:results-status result) (setf all-passed nil) (format t "~&FAILED: ~a~%" (first suite)))) (format t "Suite not found~%")))) (uiop:quit (if all-passed 0 1)))