emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 3ab2622 1/2: Tests now support out-of-source-build.


From: Phillip Lord
Subject: [Emacs-diffs] master 3ab2622 1/2: Tests now support out-of-source-build.
Date: Wed, 02 Dec 2015 12:05:46 +0000

branch: master
commit 3ab26227cf1ff7eda1847a6c1c581a0bb1031b4f
Author: Phillip Lord <address@hidden>
Commit: Phillip Lord <address@hidden>

    Tests now support out-of-source-build.
    
     * tests/Makefile.in,test/make-test-deps.emacs-lisp: Remove assumptions
       about current working directory.
---
 test/Makefile.in               |   21 +++++++++-------
 test/make-test-deps.emacs-lisp |   53 +++++++++++++++++++++++----------------
 2 files changed, 43 insertions(+), 31 deletions(-)

diff --git a/test/Makefile.in b/test/Makefile.in
index b2360fb..06a2fb9 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -87,7 +87,7 @@ WRITE_LOG = > $@ 2>&1 || { stat=ERROR; cat $@; }; echo 
$$stat: $@
 ## to change this; bug#17848 - if that gets done, this can be simplified).
 ##
 ## Beware: it approximates 'no-byte-compile', so watch out for false-positives!
-%.log: ${srcdir}/%.el
+%.log: %.el
        @if grep '^;.*no-byte-compile: t' $< > /dev/null; then \
          loadfile=$<; \
        else \
@@ -96,14 +96,17 @@ WRITE_LOG = > $@ 2>&1 || { stat=ERROR; cat $@; }; echo 
$$stat: $@
        fi; \
        echo Testing $$loadfile; \
        stat=OK ; \
+       mkdir --parents $(dir $@) ; \
        $(emacs) -l ert -l $$loadfile \
          -f ert-run-tests-batch-and-exit ${WRITE_LOG}
 
-ELFILES = $(shell find ${srcdir} -path "./manual" -prune -o \
+ELFILES = $(shell find ${srcdir} -path "${srcdir}/manual" -prune -o \
                -path "*resources" -prune -o -name "*el" -print)
-ELCFILES = $(patsubst %.el,%.elc,${ELFILES})
-LOGFILES = $(patsubst %.el,%.log,${ELFILES})
-LOGSAVEFILES  = $(patsubst %.el,%.log~,${ELFILES})
+## .elc files may be in a different directory for out of source builds
+ELCFILES = $(patsubst %.el,%.elc, \
+               $(patsubst $(srcdir)%,.%,$(ELFILES)))
+LOGFILES = $(patsubst %.elc,%.log,${ELCFILES})
+LOGSAVEFILES  = $(patsubst %.elc,%.log~,${ELCFILES})
 TESTS = $(subst ${srcdir}/,,$(LOGFILES:.log=))
 
 ## If we have to interrupt a hanging test, preserve the log so we can
@@ -117,8 +120,8 @@ TESTS = $(subst ${srcdir}/,,$(LOGFILES:.log=))
 ## of use.
 define test_template
 $(1):
-       @test ! -f ${srcdir}/$(1).log || mv ${srcdir}/$(1).log 
${srcdir}/$(1).log~
-       @${MAKE} ${srcdir}/$(1).log WRITE_LOG=
+       @test ! -f ./$(1).log || mv ./$(1).log ./$(1).log~
+       @${MAKE} ./$(1).log WRITE_LOG=
 
 $(notdir $(1)): $(1)
 endef
@@ -156,7 +159,7 @@ distclean: clean
 maintainer-clean: distclean bootstrap-clean
 
 make-test-deps.mk: $(ELFILES) make-test-deps.emacs-lisp
-       $(EMACS) --batch -l make-test-deps.emacs-lisp \
-       --eval "(make-test-deps \"`pwd`\")" \
+       $(EMACS) --batch -l $(srcdir)/make-test-deps.emacs-lisp \
+       --eval "(make-test-deps \"$(srcdir)\")" \
        2> $@
 # Makefile ends here.
diff --git a/test/make-test-deps.emacs-lisp b/test/make-test-deps.emacs-lisp
index 563b3bf..7831da3 100644
--- a/test/make-test-deps.emacs-lisp
+++ b/test/make-test-deps.emacs-lisp
@@ -26,34 +26,43 @@
 
 (require 'seq)
 
-(defun make-test-deps (directory)
-  (message
-   "%s"
-   (concat
-    (make-test-deps-lisp directory)
-    (make-test-deps-src directory))))
-
-(defun make-test-deps-lisp (directory)
+(defun make-test-deps (src-dir)
+  (let ((src-dir (file-truename src-dir)))
+    (message
+     "%s"
+     (concat
+      (make-test-deps-lisp src-dir)
+      (make-test-deps-src src-dir)))))
+
+(defun make-test-deps-lisp (src-dir)
   (mapconcat
-   (lambda (stem)
-     (format "%s-tests.log: ../%s.elc\n" stem stem))
-   (make-test-test-files directory "lisp") ""))
-
-(defun make-test-deps-src (directory)
+   (lambda (file-without-suffix)
+     (format "./%s-tests.log: %s/../%s.el\n"
+             file-without-suffix
+             src-dir
+             file-without-suffix))
+   (make-test-test-files src-dir "lisp") ""))
+
+(defun make-test-deps-src (src-dir)
   (mapconcat
-   (lambda (stem)
-     (format "%s-tests.log: ../%s.o\n" stem stem))
-   (make-test-test-files directory "src") ""))
-
-(defun make-test-test-files (stem dir)
+   (lambda (file-without-suffix)
+     (format "./%s-tests.log: %s/../%s.c\n"
+             file-without-suffix
+             src-dir
+             file-without-suffix))
+   (make-test-test-files src-dir "src") ""))
+
+(defun make-test-test-files (src-dir sub-src-dir)
   (make-test-munge-files
-   stem
-   (directory-files-recursively dir ".*-tests.el$")))
+   src-dir
+   (directory-files-recursively
+    (concat src-dir "/"  sub-src-dir)
+    ".*-tests.el$")))
 
-(defun make-test-munge-files (stem files)
+(defun make-test-munge-files (src-dir files)
   (make-test-sans-suffix
    (make-test-de-stem
-    stem
+    src-dir
     (make-test-no-legacy
      (make-test-no-test-dir
       (make-test-no-resources



reply via email to

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