Browse Source

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

Eric Schulte 8 years ago
parent
commit
4446e50e3d
2 changed files with 5 additions and 15 deletions
  1. 1 1
      testing/lisp/test-ob-R.el
  2. 4 14
      testing/org-test.el

+ 1 - 1
testing/lisp/test-ob-R.el

@@ -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

+ 4 - 14
testing/org-test.el

@@ -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))