emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/ws-butler 45a93f2bc2 18/64: add Travis-CI tests skeleton


From: Stefan Kangas
Subject: [nongnu] elpa/ws-butler 45a93f2bc2 18/64: add Travis-CI tests skeleton
Date: Fri, 31 Dec 2021 11:09:29 -0500 (EST)

branch: elpa/ws-butler
commit 45a93f2bc2837d34f9094c5fd14f06353c1d2d11
Author: Le Wang <le.wang@agworld.com.au>
Commit: Le Wang <le.wang@agworld.com.au>

    add Travis-CI tests skeleton
---
 .travis.yml              | 14 ++++++++++++++
 Makefile                 | 26 ++++++++++++++++++++++++++
 tests/run-test.el        | 42 ++++++++++++++++++++++++++++++++++++++++++
 tests/ws-butler-tests.el | 30 ++++++++++++++++++++++++++++++
 4 files changed, 112 insertions(+)

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000..57f385b2fd
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,14 @@
+language: emacs-lisp
+before_install:
+  - git submodule update --init
+  - if [ "$EMACS" = 'emacs-snapshot' ]; then
+      sudo add-apt-repository -y ppa:cassou/emacs &&
+      sudo apt-get update -qq &&
+      sudo apt-get install -qq
+          emacs-snapshot-el emacs-snapshot-gtk emacs-snapshot;
+    fi
+env:
+  - EMACS=emacs
+  - EMACS=emacs-snapshot
+script:
+  make travis-ci EMACS=$EMACS
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000..990b7e2cb9
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,26 @@
+EMACS=emacs
+EMACS23=emacs23
+EMACS-OPTIONS=
+
+.PHONY: test test-nw travis-ci show-version before-test
+
+show-version: show-version
+       echo "*** Emacs version ***"
+       echo "EMACS = `which ${EMACS}`"
+       ${EMACS} --version
+
+install-ert:
+       emacs --batch -L "${PWD}/lib/ert/lisp/emacs-lisp" --eval "(require 
'ert)" || ( git clone git://github.com/ohler/ert.git lib/ert && cd lib/ert && 
git checkout 00aef6e43 )
+
+
+before-test: show-version install-ert
+
+test: before-test
+       ${EMACS} -Q -L . -l tests/run-test.el
+
+test-nw: before-test
+       ${EMACS} -Q -nw -L . -l tests/run-test.el
+
+travis-ci: before-test
+       echo ${EMACS-OPTIONS}
+       ${EMACS} -batch -Q -l tests/run-test.el
diff --git a/tests/run-test.el b/tests/run-test.el
new file mode 100644
index 0000000000..d992424e24
--- /dev/null
+++ b/tests/run-test.el
@@ -0,0 +1,42 @@
+;; Usage:
+;;
+;;   emacs -Q -l tests/run-test.el           # interactive mode
+;;   emacs -batch -Q -l tests/run-test.el    # batch mode
+
+
+;; Utils
+(defun ws-butler-test-join-path (path &rest rest)
+  "Join a list of PATHS with appropriate separator (such as /).
+
+\(fn &rest paths)"
+  (if rest
+      (concat (file-name-as-directory path) (apply 'ws-butler-test-join-path 
rest))
+    path))
+
+(defvar ws-butler-test-dir (file-name-directory load-file-name))
+(defvar ws-butler-root-dir (file-name-as-directory (expand-file-name ".." 
ws-butler-test-dir)))
+
+
+;; Setup `load-path'
+(mapc (lambda (p) (add-to-list 'load-path p))
+      (list ws-butler-test-dir
+            ws-butler-root-dir))
+
+
+;; Use ERT from github when this Emacs does not have it
+(unless (locate-library "ert")
+  (add-to-list
+   'load-path
+   (ws-butler-test-join-path ws-butler-root-dir "lib" "ert" "lisp" 
"emacs-lisp"))
+  (require 'ert-batch)
+  (require 'ert-ui))
+
+
+;; Load tests
+(load "ws-butler-tests")
+
+
+;; Run tests
+(if noninteractive
+    (ert-run-tests-batch-and-exit)
+  (ert t))
diff --git a/tests/ws-butler-tests.el b/tests/ws-butler-tests.el
new file mode 100644
index 0000000000..43bcde435f
--- /dev/null
+++ b/tests/ws-butler-tests.el
@@ -0,0 +1,30 @@
+
+(require 'ert)
+
+;; (require 'popup)
+
+;; for "every" function
+(require 'cl)
+
+(defmacro ws-butler-test-with-test-buffer (&rest body)
+  (declare (indent 0) (debug t))
+  `(let ((test-buffer-name "*ws-butler test*"))
+     (save-excursion
+       (when (get-buffer test-buffer-name)
+         (kill-buffer test-buffer-name))
+       (switch-to-buffer (get-buffer-create test-buffer-name))
+       ,@body)))
+
+(defmacro ws-butler-test-with-common-setup (&rest body)
+  (declare (indent 0) (debug t))
+  `(ws-butler-test-with-test-buffer
+    ,@body))
+
+
+(ert-deftest ws-butler-test-sanity ()
+  "sanity check."
+  (ws-butler-test-with-common-setup
+    (insert "a b c")
+    (execute-kbd-macro (read-kbd-macro "M-DEL"))
+    (should (every #'identity (list 1 2 3)))
+    (should (string-equal (buffer-string) "a b "))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]