From 0cd0011c7602cc4ce7fe1c7076bfe7665112de9f Mon Sep 17 00:00:00 2001 From: Taylor R Campbell Date: Sat, 9 Apr 2011 18:44:26 +0000 Subject: Implement expected errors in test suite. Ignore-this: c8b3e39457bf11ea71ae9a9a1f73b608 darcs-hash:20110409184426-00fcc-d13ce13ea3bf386527a93111959202f3cd0bbb33 --- test.el | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'test.el') diff --git a/test.el b/test.el index ddb61c8..a7f504b 100644 --- a/test.el +++ b/test.el @@ -18,7 +18,7 @@ ;; ;; You should have received a copy of the GNU General Public License ;; along with paredit. If not, see . - + (defun paredit-test-failure-default (command before after expected) (error "%S failed test: after %S, got %S but expected %S." command before after expected)) @@ -35,7 +35,7 @@ Four arguments: the paredit command, the text of the buffer (defun paredit-test (command examples) (dolist (example examples) (let ((before (car example))) - (dolist (after (cdr example)) + (dolist (expected (cdr example)) (with-temp-buffer (scheme-mode) (set (make-local-variable 'indent-tabs-mode) nil) @@ -44,11 +44,18 @@ Four arguments: the paredit command, the text of the buffer (goto-char (point-min)) (search-forward "|") (backward-delete-char +1) - (funcall command) - (insert ?\|) - (if (not (string= after (buffer-string))) - (paredit-test-failed command before (buffer-string) after))) - (setq before after))))) + (if (cond ((eq expected 'error) + ;++ Check that there are no more expected states. + (condition-case condition + (progn (funcall command) t) + (error nil))) + ((stringp expected) + (funcall command) + (insert ?\|) + (not (string= expected (buffer-string)))) + (t (error "Bad test expectation:" expected))) + (paredit-test-failed command before (buffer-string) expected))) + (setq before expected))))) (paredit-do-commands (spec keys command examples) nil ;string case @@ -65,8 +72,10 @@ Four arguments: the paredit command, the text of the buffer (mapcar (lambda (example) (mapcar (lambda (step) - (replace-regexp-in-string "(" (string left) - (replace-regexp-in-string ")" (string right) step))) + (if (stringp step) + (replace-regexp-in-string "(" (string left) + (replace-regexp-in-string ")" (string right) step)) + step)) example)) examples))))) -- cgit v1.2.1