org tests using throw/catch rather than errors to avoid loading unsupported tests

This commit is contained in:
Eric Schulte 2011-09-24 15:57:05 -06:00
parent 706de59f07
commit 4446e50e3d
2 changed files with 5 additions and 15 deletions

View File

@ -8,7 +8,7 @@
(org-test-for-executable "R")
(unless (featurep 'ess)
(signal 'org-test-lib-not-found "ess"))
(throw 'missing-test-dependency "ESS"))
(let ((load-path (cons (expand-file-name
".." (file-name-directory

View File

@ -100,15 +100,6 @@ org-test searches this directory up the directory tree.")
(defconst org-test-link-in-heading-file
(expand-file-name "link-in-heading.org" org-test-dir))
;; Errors used by test files that shouldn't be run because local
;; dependencies are missing.
(put 'org-exe-not-found
'error-conditions
'(error org-test-missing-dependency org-test-exe-not-found))
(put 'org-lib-not-found
'error-conditions
'(error org-test-missing-dependency org-test-lib-not-found))
;;; Functions for writing tests
(defun org-test-for-executable (exe)
@ -117,7 +108,7 @@ This can be used at the top of code-block-language specific test
files to avoid loading the file on systems without the
executable."
(unless (> (length (shell-command-to-string (format "which %s" exe))) 0)
(signal 'org-test-exe-not-found exe)))
(throw 'missing-test-dependency exe)))
(defun org-test-buffer (&optional file)
"TODO: Setup and return a buffer to work with.
@ -278,10 +269,9 @@ otherwise place the point at the beginning of the inserted text."
(mapc
(lambda (path)
(if (file-directory-p path)
(rld path)
(condition-case nil
(load-file path)
(org-test-missing-dependency nil))))
(rld path)
(catch 'missing-test-dependency
(load-file path))))
(directory-files base 'full
"^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*\\.el$"))))
(rld (expand-file-name "lisp" org-test-dir))