summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAchim Gratz <Stromeko@Stromeko.DE>2013-05-19 09:20:17 +0200
committerAchim Gratz <Stromeko@Stromeko.DE>2013-06-01 11:31:07 +0200
commite63a7ff70cb4e8669d4c4796afc153f8ea536fcf (patch)
tree9cf605781b8376a99f7928752d6a4a5f8156d6cd
parent24d3fbacaae8358f41a0ea556253473bc0fce999 (diff)
downloadorg-mode-e63a7ff70cb4e8669d4c4796afc153f8ea536fcf.tar.gz
org-test: prepare for more selective batch testing
* testing/org-test.el: Conditionalize interactive setup on bound-and-true `org-batch-test'. (org-id-locations-file): New defvar. (org-test-run-batch-tests): Use `org-id-locations-file' defined before and add optional argument `org-test-selector' to control which tests to run. This change introduces ability to select the tests to run for batch testing and removes several dependencies not needed during batch test when `org-batch-test' is defined in preparation for a corresponding change in how the build system invokes batch testing. Full backward compatibility is maintained.
-rw-r--r--testing/org-test.el108
1 files changed, 55 insertions, 53 deletions
diff --git a/testing/org-test.el b/testing/org-test.el
index 8c81115..4f70510 100644
--- a/testing/org-test.el
+++ b/testing/org-test.el
@@ -39,51 +39,52 @@
(defconst org-test-link-in-heading-file-ob-anchor
"a8b1d111-eca8-49f0-8930-56d4f0875155")
-(let* ((org-test-dir (expand-file-name
- (file-name-directory
- (or load-file-name buffer-file-name))))
- (org-lisp-dir (expand-file-name
- (concat org-test-dir "../lisp"))))
-
- (unless (featurep 'org)
- (setq load-path (cons org-lisp-dir load-path))
- (require 'org)
- (require 'org-id)
- (require 'ox)
- (org-babel-do-load-languages
- 'org-babel-load-languages '((sh . t) (org . t))))
-
- (let* ((load-path (cons
- org-test-dir
- (cons
- (expand-file-name "jump" org-test-dir)
- load-path))))
- (require 'cl)
- (when (= emacs-major-version 22)
- (defvar special-mode-map
- (let ((map (make-sparse-keymap)))
- (suppress-keymap map)
- (define-key map "q" 'quit-window)
- (define-key map " " 'scroll-up)
- (define-key map "\C-?" 'scroll-down)
- (define-key map "?" 'describe-mode)
- (define-key map "h" 'describe-mode)
- (define-key map ">" 'end-of-buffer)
- (define-key map "<" 'beginning-of-buffer)
- (define-key map "g" 'revert-buffer)
- (define-key map "z" 'kill-this-buffer)
- map))
-
- (put 'special-mode 'mode-class 'special)
- (define-derived-mode special-mode nil "Special"
- "Parent major mode from which special major modes should inherit."
- (setq buffer-read-only t)))
- (require 'ert)
- (require 'ert-x)
- (when (file-exists-p
- (expand-file-name "jump/jump.el" org-test-dir))
- (require 'jump)
- (require 'which-func))))
+(unless (and (boundp 'org-batch-test) org-batch-test)
+ (let* ((org-test-dir (expand-file-name
+ (file-name-directory
+ (or load-file-name buffer-file-name))))
+ (org-lisp-dir (expand-file-name
+ (concat org-test-dir "../lisp"))))
+
+ (unless (featurep 'org)
+ (setq load-path (cons org-lisp-dir load-path))
+ (require 'org)
+ (require 'org-id)
+ (require 'ox)
+ (org-babel-do-load-languages
+ 'org-babel-load-languages '((sh . t) (org . t))))
+
+ (let* ((load-path (cons
+ org-test-dir
+ (cons
+ (expand-file-name "jump" org-test-dir)
+ load-path))))
+ (require 'cl)
+ (when (= emacs-major-version 22)
+ (defvar special-mode-map
+ (let ((map (make-sparse-keymap)))
+ (suppress-keymap map)
+ (define-key map "q" 'quit-window)
+ (define-key map " " 'scroll-up)
+ (define-key map "\C-?" 'scroll-down)
+ (define-key map "?" 'describe-mode)
+ (define-key map "h" 'describe-mode)
+ (define-key map ">" 'end-of-buffer)
+ (define-key map "<" 'beginning-of-buffer)
+ (define-key map "g" 'revert-buffer)
+ (define-key map "z" 'kill-this-buffer)
+ map))
+
+ (put 'special-mode 'mode-class 'special)
+ (define-derived-mode special-mode nil "Special"
+ "Parent major mode from which special major modes should inherit."
+ (setq buffer-read-only t)))
+ (require 'ert)
+ (require 'ert-x)
+ (when (file-exists-p
+ (expand-file-name "jump/jump.el" org-test-dir))
+ (require 'jump)
+ (require 'which-func)))))
(defconst org-test-default-test-file-name "tests.el"
"For each defun a separate file with tests may be defined.
@@ -111,6 +112,9 @@ 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))
+(defconst org-id-locations-file
+ (expand-file-name ".test-org-id-locations" org-test-dir))
+
;;; Functions for writing tests
(put 'missing-test-dependency
@@ -408,20 +412,18 @@ setting `pp-escape-newlines' to nil manually."
org-test-example-dir 'full
"^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*\\.org$")))
-(defun org-test-run-batch-tests ()
- "Run all defined tests matching \"\\(org\\|ob\\)\".
+(defun org-test-run-batch-tests (&optional org-test-selector)
+ "Run all tests matching an optional regex which defaults to \"\\(org\\|ob\\)\".
Load all test files first."
(interactive)
(let ((org-id-track-globally t)
- (org-id-locations-file
- (convert-standard-filename
- (expand-file-name
- "testing/.test-org-id-locations"
- org-base-dir))))
+ (org-test-selector
+ (if org-test-selector org-test-selector "\\(org\\|ob\\)"))
+ org-confirm-babel-evaluate vc-handled-backends)
(org-test-touch-all-examples)
(org-test-update-id-locations)
(org-test-load)
- (ert-run-tests-batch-and-exit "\\(org\\|ob\\)")))
+ (ert-run-tests-batch-and-exit org-test-selector)))
(defun org-test-run-all-tests ()
"Run all defined tests matching \"\\(org\\|ob\\)\".