[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] feature/integrated-elpa 73afa20 02/23: Starting to add tes
From: |
Phillip Lord |
Subject: |
[Emacs-diffs] feature/integrated-elpa 73afa20 02/23: Starting to add test support |
Date: |
Fri, 16 Sep 2016 20:34:15 +0000 (UTC) |
branch: feature/integrated-elpa
commit 73afa20544c97248ef8be55ca5a376f9e1d6241f
Author: Phillip Lord <address@hidden>
Commit: Phillip Lord <address@hidden>
Starting to add test support
---
packages/GNUmakefile | 29 +++++++++++++++++++++++
packages/package-test.el | 57 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 86 insertions(+)
diff --git a/packages/GNUmakefile b/packages/GNUmakefile
new file mode 100644
index 0000000..ed686d8
--- /dev/null
+++ b/packages/GNUmakefile
@@ -0,0 +1,29 @@
+## This file is called GNUmakefile because Makefile is git ignored. Rename
+## when this is autoconf'd
+
+
+EMACS=../src/emacs
+
+DIRS=$(filter-out .,$(subst ./,,$(shell find . -maxdepth 1 -type d)))
+
+## alas "all" is an ELPA package
+build-all: $(DIRS)
+
+define package_template
+$(1): $(1)/$(1)-pkg.el
+
+$(1)/$(1)-pkg.el:
+ $$(EMACS) --batch --load package-build.el --eval
'(package-build-prepare "$(1)")'
+
+endef
+
+$(foreach dir,$(DIRS),$(eval $(call package_template,$(dir))))
+
+define test_template
+$(1)-test:
+ $$(EMACS) --batch --load package-test.el --eval
'(assess-discover-run-and-exit-batch-dir "$(1)")'
+endef
+
+$(foreach dir,$(DIRS),$(eval $(call test_template,$(dir))))
+
+test: $(patsubst %,%-test,$(DIRS))
diff --git a/packages/package-test.el b/packages/package-test.el
new file mode 100644
index 0000000..3e9827d
--- /dev/null
+++ b/packages/package-test.el
@@ -0,0 +1,57 @@
+(defun assess-discover-tests (directory)
+ "Discover tests in directory.
+
+Tests must conform to one (and only one!) of several naming
+schemes.
+
+ - End with -test.el
+ - End with -tests.el
+ - Start with test-
+ - Any .el file in a directory called test
+ - Any .el file in a directory called tests
+
+Each of these is tried until one matches. So, a top-level file
+called \"blah-test.el\" will prevent discovery of files in a
+tests directory."
+ (or
+ ;; files with
+ (directory-files directory nil ".*-test.el$")
+ (directory-files directory nil ".*-tests.el$")
+ (directory-files directory nil "test-.*.el$")
+ (let ((dir-test
+ (concat directory "test/")))
+ (when (file-exists-p dir-test)
+ (mapcar
+ (lambda (file)
+ (concat dir-test file))
+ (directory-files dir-test nil ".*.el"))))
+ (let ((dir-tests
+ (concat directory "tests/")))
+ (when (file-exists-p dir-tests)
+ (mapcar
+ (lambda (file)
+ (concat dir-tests file))
+ (directory-files dir-tests nil ".*.el"))))))
+
+(defun assess-discover--load-all-tests (directory)
+ (mapc
+ 'load
+ (assess-discover-tests directory)))
+
+(defun assess-discover-load-tests ()
+ (interactive)
+ (assess-discover--load-all-tests default-directory))
+
+;;;###autoload
+(defun assess-discover-run-batch (&optional selector)
+ (assess-discover--load-all-tests default-directory)
+ (ert-run-tests-batch selector))
+
+;;;###autoload
+(defun assess-discover-run-and-exit-batch (&optional selector)
+ (assess-discover--load-all-tests default-directory)
+ (ert-run-tests-batch-and-exit selector))
+
+(defun assess-discover-run-and-exit-batch-dir (directory)
+ (let ((default-directory directory))
+ (assess-discover-run-and-exit-batch)))
- [Emacs-diffs] branch feature/integrated-elpa created (now bfe28f0), Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa b99bbf5 04/23: Merge branch 'feature/integrated-elpa' of vm-npl25.ncl.ac.uk:git/emacs into feature/integrated-elpa, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa fb9a7bf 07/23: Example test, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 0b70bfc 08/23: Build and test ELPA packages also, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 679fde7 17/23: Fix include in makefile, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 48e846d 12/23: Build system now in generated makefile, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 6b13eac 03/23: Initial Support for ELPA packages in core, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa cf1d196 21/23: ELPA as an environment variable, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 73afa20 02/23: Starting to add test support,
Phillip Lord <=
- [Emacs-diffs] feature/integrated-elpa 031233d 05/23: build-all depends on emacs, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 937c695 18/23: Add bug report about multifile packages, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 4b0cf9d 06/23: Various path hacks, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 4f6df43 15/23: README added, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 5a2fa7a 11/23: Lots of changes, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa d208ef5 13/23: Makefile generator for tests, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 2456488 09/23: Start to factor out, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 5d0232b 19/23: Multifile packages now work, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa b2f34a4 20/23: ELPA support, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa dad684e 10/23: Refactor new files, Phillip Lord, 2016/09/16