X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/dea4d05507e59ab779ed4bb209e05971d87e260c..61d083c621c983b7bb06a2d7f3d2dc2a80a442b7:/src/test-base.lisp diff --git a/src/test-base.lisp b/src/test-base.lisp index 6e020cb..f7210ab 100644 --- a/src/test-base.lisp +++ b/src/test-base.lisp @@ -52,7 +52,37 @@ rather than `~A'." object print string)))) -(defun run-tests () - (textui-test-run *sod-test-suite*)) +(defclass base-test (test-case) ()) +(add-test *sod-test-suite* (get-suite base-test)) + +(export '*build-version*) +(defvar *build-version* nil) + +(def-test-method check-version ((test base-test) :run nil) + (unless (or (null *build-version*) + (and (>= (length *build-version*) (length *sod-version*)) + (string= *build-version* *sod-version* + :end1 (length *sod-version*)))) + (failure "Build version ~A doesn't match package version ~A." + *build-version* *sod-version*))) + +(defun run-tests (&optional which) + (textui-test-run (acond + ((null which) *sod-test-suite*) + ((labels ((dredge (suite) + (cond + ((typep suite 'test-suite) + (some #'dredge (tests suite))) + ((eq (xlunit::name suite) which) + suite) + (t + nil)))) + (dredge *sod-test-suite*)) + it) + ((find-class which nil) + (suite (make-instance it))) + (t + (error "Don't know how to turn ~S into a test suite" + which))))) ;;;----- That's all, folks --------------------------------------------------