[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa-admin cc33931 222/439: Add test capability to ELPA
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa-admin cc33931 222/439: Add test capability to ELPA |
Date: |
Sun, 17 Oct 2021 15:48:06 -0400 (EDT) |
branch: elpa-admin
commit cc33931fded4db25115282fd745186d0ecc3dbbe
Author: Phillip Lord <phillip.lord@russet.org.uk>
Commit: Phillip Lord <phillip.lord@russet.org.uk>
Add test capability to ELPA
make check now attempts to run tests in all packages.
---
GNUmakefile | 29 ++++++++++++++++++++++++++++
admin/ert-support.el | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 83 insertions(+)
diff --git a/GNUmakefile b/GNUmakefile
index ad86a7f..d23d523 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -1,4 +1,5 @@
# Makefile for GNU Emacs Lisp Package Archive.
+#
EMACS=emacs --batch
@@ -190,3 +191,31 @@ all-in-place: $(extra_elcs) $(autoloads) $(pkg_descs)
externals:
$(EMACS) -l admin/archive-contents.el \
-f archive-add/remove/update-externals
+
+
+
+
+################### Testing ###############
+
+PACKAGE_DIRS = $(shell find packages -maxdepth 1 -type d)
+PACKAGES=$(subst /,,$(subst packages,,$(PACKAGE_DIRS)))
+
+TOP =$(shell pwd)
+
+define test_template
+$(1)-test:
+ cd packages/$(1);\
+ $(EMACS) -l $(TOP)/admin/ert-support.el \
+ --eval "(ert-support-test-package \"$(TOP)\" '$(1))" \
+
+$(1)-test-log:
+ $(MAKE) $(1)-test > packages/$(1)/$(1).log 2>&1 || { stat=ERROR; }
+endef
+
+$(foreach package,$(PACKAGES),$(eval $(call test_template,$(package))))
+
+PACKAGES_TESTS=$(addsuffix -test-log,$(PACKAGES))
+PACKAGES_LOG=$(foreach package,$(PACKAGES),packages/$(package)/$(package).log)
+
+check: $(PACKAGES_TESTS)
+ $(EMACS) -l ert -f ert-summarize-tests-batch-and-exit $(PACKAGES_LOG)
diff --git a/admin/ert-support.el b/admin/ert-support.el
new file mode 100644
index 0000000..93d1af8
--- /dev/null
+++ b/admin/ert-support.el
@@ -0,0 +1,54 @@
+;; The contents of this file are subject to the GPL License, Version 3.0.
+
+;; Copyright (C) 2016, Free Software Foundation, Inc.
+
+;; This program is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+(defun ert-support-package-install (top-directory package)
+ ;; blitz default value and set up from elpa.
+ (setq package-archives
+ `(("local-elpa" . ,(concat top-directory "/archive/packages"))))
+ (setq package-user-dir
+ (make-temp-file "elpa-test" t))
+ (package-initialize)
+ (package-refresh-contents)
+ (package-install package))
+
+(defun ert-support-test-find-tests (package-directory package)
+ (or
+ (directory-files package-directory nil ".*-test.el$")
+ (directory-files package-directory nil ".*-tests.el$")
+ (let ((dir-test
+ (concat package-directory "/test")))
+ (when (file-exists-p dir-test)
+ (directory-files dir-test)))
+ (let ((dir-tests
+ (concat package-directory "/tests")))
+ (when (file-exists-p dir-tests)
+ (directory-files dir-tests)))))
+
+(defun ert-support-load-tests (package-directory package)
+ (mapc
+ (lambda(file)
+ (message "Loading test file... %s" (concat package-directory file))
+ (load-file (concat package-directory file)))
+ (ert-support-test-find-tests package-directory package)))
+
+(defun ert-support-test-package (top-directory package)
+ (ert-support-package-install top-directory package)
+ (ert-support-load-tests
+ (concat top-directory "/packages/" (symbol-name package) "/")
+ package)
+
+ (ert-run-tests-batch-and-exit t))
- [nongnu] elpa-admin 3a394c3 188/439: Merge commit 'd76bcd7c0dcecb33e6955e25963028600c371588', (continued)
- [nongnu] elpa-admin 3a394c3 188/439: Merge commit 'd76bcd7c0dcecb33e6955e25963028600c371588', Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin 5e9fdd4 197/439: * README: Revert change about package.el headers, Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin 9731033 204/439: Use symbolic links for core packages, Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin 7edd6ff 205/439: Dereference symlinks when creating tarballs, Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin df09582 201/439: * README: Add submission guideline, Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin 7fa1dbd 214/439: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs/elpa, Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin 5571ea8 211/439: Add symlink to README, Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin 60ab286 213/439: Squashed 'packages/gnome-c-style/' content from commit e84487c, Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin 9ab6e7e 217/439: Update packages/yasnippet by subtree-merging from its external upstream, Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin f1c2e2f 210/439: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs/elpa: transcribe.el update, Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin cc33931 222/439: Add test capability to ELPA,
Philip Kaludercic <=
- [nongnu] elpa-admin 968d870 212/439: Merge commit 'cce1d8b50b1ceccb80c20398cd659db3a6348aac' as 'packages/gnome-c-style', Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin 2ba4dc8 215/439: Merge commit '6bf96861b98e91ca9c3bd146697580b42d30f5d9', Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin f79a619 218/439: * packages/gnome-c-style/gnome-c-tests.el: Add copyright blurb, Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin 73a80fc 227/439: Update packages/yasnippet by subtree-merging from its github-based upstream, Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin 0907441 229/439: packages/yasnippet: subtree pull from external, Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin cc63328 234/439: * GNUmakefile (.gitignore): New rule, Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin 8208d1c 245/439: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs/elpa, Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin 32ff16d 247/439: Merge commit 'ff57536e7c8e7dd2b5bfdf803fe78327b572e080', Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin da3bd64 263/439: [admin int] Use ‘archive--read-externals-list’ more., Philip Kaludercic, 2021/10/17
- [nongnu] elpa-admin 1325337 262/439: [admin int] Simplify ‘archive-gitignore-externals’., Philip Kaludercic, 2021/10/17