https://github.com/rocky/emacs-test-simple.git
git clone 'git://github.com/rocky/emacs-test-simple.git'
test-simple.el is :
eval-last-sexp
, eval-region
, and eval-buffer
emacs --batch --no-site-file --no-splash --load <test-lisp-code.el>
I use this in my Debugger front end.
Here is an example found in the examples directory.
In file gcd.el
:
(defun gcd(a b)
"Greatest Common Divisor of A and B"
;; Make a < b
(if (> a b)
(let ((c a))
(setq a b)
(setq b c)))
(cond
((< a 0) nil)
((or (= 0 (- b a)) (= a 1)) a)
(t (gcd (- b a) a))
)
)
In file test-gcd.el
in the same directory:
(require 'test-simple)
(test-simple-start) ;; Zero counters and start the stop watch.
;; Use (load-file) below because we want to always to read the source.
;; Also, we don't want no stinking compiled source.
(assert-t (load-file "./gcd.el")
"Can't load gcd.el - are you in the right directory?" )
(note "degenerate cases")
(assert-nil (gcd 5 -1) "using positive numbers")
(assert-nil (gcd -4 1) "using positive numbers, switched order")
(assert-raises error (gcd "a" 32)
"Passing a string value should raise an error")
(note "GCD computations")
(assert-equal 1 (gcd 3 5) "gcd(3,5)")
(assert-equal 8 (gcd 8 32) "gcd(8,32)")
(end-tests) ;; Stop the clock and print a summary
Edit (with Emacs of course) test-gcd.el
and run M-x eval-current-buffer
You should see in buffer *test-simple*
:
test-gcd.el
......
0 failures in 6 assertions (0.002646 seconds)
Now let's try from a command line:
$ emacs --batch --no-site-file --no-splash --load test-gcd.el
Loading /src/external-vcs/emacs-test-simple/example/gcd.el (source)...
*scratch*
......
0 failures in 6 assertions (0.000723 seconds)
Author: Rocky Bernstein mailto:rocky@gnu.org