X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?p=sheep;a=blobdiff_plain;f=src%2Ftest%2Fmain.lisp;h=9bae683d13ec013175a444b8b52120f5def15fed;hp=270609760f7b101bc940a224c2f602f989af8115;hb=0.2;hpb=683928f90e320bed84a816e8b59521b1c6714991 diff --git a/src/test/main.lisp b/src/test/main.lisp index 2706097..9bae683 100644 --- a/src/test/main.lisp +++ b/src/test/main.lisp @@ -16,7 +16,10 @@ `(push (lambda () (let - ((success (funcall ,f))) + ((success + (handler-case + (funcall ,f) + (error (e) (format t "Got unexpected error in tests: ~A" e))))) (if success (format t "~c[1;32m- ~A passed~c[0m~%" #\Esc ,name #\Esc) (format t "~c[1;31m- ~A failed~c[0m~%" #\Esc ,name #\Esc)) @@ -32,13 +35,24 @@ (load ,source) (string= (slurp-file ,target) (docgen:export-package ,pkg))) (docgen:validation-failure (vf) - (format t "Error gotten: ~A~%" - (funcall (symbol-function (find-symbol "VALIDATION-FAILURE-MSG" :docgen)) vf))) - (error (e) (format t "Error gotten: ~A~%" e)))))) + (format t "Validation failure gotten: ~A~%" + (funcall (symbol-function (find-symbol "VALIDATION-FAILURE-MSG" :docgen)) vf))))))) + +(defmacro deffailuretest (pkg source expected) + `(deftest + ,source + (lambda () + (progn + (load ,source) + (let + ((result (docgen:validate-package ,pkg))) + (or + (equal ,expected result) + (format t " Got error:~%~S~% but expected~%~S~%" result ,expected))))))) (defmacro deffailure-func-test (name doc expected) `(deftest - ,name + ,(format nil "Func - ~A" name) (lambda () (handler-case (progn @@ -54,4 +68,26 @@ (string= ,expected result) (format t " Got error:~%~S~% but expected~%~S~%" result ,expected)))))))) +(defmacro deffailure-var-test (name doc expected) + `(deftest + ,(format nil "Var - ~A" name) + (lambda () + (handler-case + (progn + (funcall + (symbol-function (find-symbol "INTERNAL-DOC->AST" :docgen-var)) + '*unused* + ,doc) + nil) + (docgen:validation-failure (vf) + (let + ((result (funcall (symbol-function (find-symbol "VALIDATION-FAILURE-MSG" :docgen)) vf))) + (or + (string= ,expected result) + (format t " Got error:~%~S~% but expected~%~S~%" result ,expected)))))))) + (defsuccesstest :success1 "resources/success1.lisp" "resources/success1.md") +(deffailuretest :emptydocs "resources/emptydocs.lisp" + `((:failure :emptydocs "Package EMPTYDOCS has no documentation") + (:failure ,(intern "NO-DOC-CONDITION" :emptydocs) "Symbol NO-DOC-CONDITION has no documentation") + (:failure ,(intern "NO-DOC-FUNC" :emptydocs) "Symbol NO-DOC-FUNC has no documentation")))