From a291d56e12f47323de2234facb0bdc877e8addda Mon Sep 17 00:00:00 2001 From: Phil Jackson Date: Sun, 10 Aug 2008 19:39:14 +0100 Subject: [PATCH] Default result mode now takes account of :skip and :todo. --- etest-result-mode.el | 20 +++++++++++++++++--- etest.el | 26 +++++++++++++++++++------- etest.etest | 6 +++++- 3 files changed, 41 insertions(+), 11 deletions(-) diff --git a/etest-result-mode.el b/etest-result-mode.el index 6acf6cf..a98abd9 100644 --- a/etest-result-mode.el +++ b/etest-result-mode.el @@ -44,11 +44,18 @@ (defvar etest-rm-ok-re "^ *\\(ok\\) \\.\\." "Regexp that will match good test status.") +(defvar etest-rm-todo-re "^ *\\(todo\\) \\.\\." + "Regexp that will match good test status.") + +(defvar etest-rm-skip-re "^ *\\(skip\\) \\.\\." + "Regexp that will match good test status.") + (defvar etest-status-re (concat "\\(" etest-rm-not-ok-re "\\|" etest-rm-ok-re - "\\)") - "Regexp that will match a test status.") + "\\|" etest-rm-todo-re + "\\|" etest-rm-skip-re "\\)") + "Regexp that will match a test status.") (defvar etest-meta-info-re (concat "[[:blank:]]" @@ -132,7 +139,12 @@ current line." (let ((returned (plist-get result :result))) (let* ((doc (plist-get result :doc)) (comments (plist-get result :comments)) - (prefix (if returned "ok" "not ok"))) + (prefix (if returned + (cond + ((plist-get result :skip) "skip") + ((plist-get result :todo) "todo") + (t "ok")) + "not ok"))) (insert (concat " " prefix " ")) (insert-char ?\. (- 18 (length prefix) level)) (insert ".. ") @@ -226,6 +238,8 @@ current line." (defconst etest-rm-font-lock-keywords `((,etest-rm-ok-re 1 etest-rm-ok-face) (,etest-rm-not-ok-re 1 etest-rm-not-ok-face) + (,etest-rm-todo-re 1 etest-rm-not-ok-face) + (,etest-rm-skip-re 1 etest-rm-not-ok-face) (,etest-meta-info-re 1 etest-rm-heading-face) ("^ *\\(#.+\\)" 1 etest-rm-comment-face) ("^ *\\*+ \\(.+\\)" 1 etest-rm-heading-face))) diff --git a/etest.el b/etest.el index 0c3e1fe..deffb48 100644 --- a/etest.el +++ b/etest.el @@ -86,7 +86,8 @@ equal (etest-equal 2) eql (etest-eql 2) ok (etest-ok 1) - skip (etest-skip 1)) + skip (etest-skip 1) + todo (etest-todo 1)) "Plist of test candidates where PROP is the name of the new test . See `deftest' for details of how to modify this.") @@ -98,13 +99,24 @@ will be run." (plist-put etest-candidates-plist name (list func argcount)))) +(defun etest-skip-todo (form keyword) + "Return an etest result set with :result set to t. Set +KEYWORD (usually todo or skip) to t and comments to the result." + (let ((res (prin1-to-string + (condition-case err (car (etest-run (list form))) + (error + err))))) + (list :result t + :comments (concat "got: " (replace-regexp-in-string "\n" "" res)) + keyword t))) + (defun etest-skip (form) - (let ((my-comments "") - (test-result '()) - (val (condition-case err (car (etest-run (list form))) - (error - (format "error: %S" err))))) - (list :result t :comments val :skip t))) + "Call `etest-skip-todo' with the keyword being :skip" + (etest-skip-todo form :skip)) + +(defun etest-todo (form) + "Call `etest-skip-todo' with the keyword being :todo" + (etest-skip-todo form :todo)) (defun etest-ok (test) "Simply eval TEST and pass if the result is non-nil." diff --git a/etest.etest b/etest.etest index 046a667..a897cee 100644 --- a/etest.etest +++ b/etest.etest @@ -28,7 +28,11 @@ (eres (noerror (+ 1 1)) (:result t)) (eres (noerror (/ 1 0)) (:result nil)))) ("Skip" - (eres (skip (ok (/ 0 0))) (:skip t))) + (skip (ok 1)) + (eres (skip (eq (/ 0 1) 1)) (:skip t :todo nil))) + ("Todo" + (todo (ok nil)) + (eres (todo (ok (/ 0 0))) (:todo t :skip nil))) ("Documentation" ("Defined by user" (eres (ok 1 "Foo") (:doc "Foo")) -- 2.11.4.GIT