add comp-tests-bootstrap

This commit is contained in:
Andrea Corallo 2019-11-16 09:58:05 +01:00
parent 787444c769
commit b91cbf80ae

View file

@ -32,13 +32,37 @@
(setq comp-speed 3)
(setq comp-debug 1)
(defconst comp-test-directory (file-name-directory (or load-file-name
buffer-file-name)))
(defconst comp-test-src
(concat (file-name-directory (or load-file-name buffer-file-name))
"comp-test-funcs.el"))
(concat comp-test-directory "comp-test-funcs.el"))
(message "Compiling %s" comp-test-src)
(load (native-compile comp-test-src))
(ert-deftest comp-tests-bootstrap ()
"Compile the compiler and load it to compile it-self.
Check that the resulting binaries do not differ."
(let ((comp-file (concat comp-test-directory
"../../lisp/emacs-lisp/comp.el"))
(comp1-file (concat temporary-file-directory
(make-temp-name "stage1-")
".el"))
(comp2-file (concat temporary-file-directory
(make-temp-name "stage2-")
".el")))
(copy-file comp-file comp1-file)
(copy-file comp-file comp2-file)
(load (concat comp-file "c") nil nil t t)
(should (null (subr-native-elisp-p (symbol-function #'native-compile))))
(message "Compiling stage1...")
(load (native-compile comp1-file) nil nil t t)
(should (subr-native-elisp-p (symbol-function 'native-compile)))
(message "Compiling stage2...")
(native-compile comp2-file)
(message "Comparing %s %s" comp1-file comp2-file)
(should (= (call-process "cmp" nil nil nil comp1-file comp2-file) 0))))
(ert-deftest comp-tests-provide ()
"Testing top level provide."
(should (featurep 'comp-test-funcs)))