]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge from origin/emacs-25
authorJohn Wiegley <johnw@newartisans.com>
Tue, 12 Jan 2016 06:50:30 +0000 (22:50 -0800)
committerJohn Wiegley <johnw@newartisans.com>
Tue, 12 Jan 2016 06:50:30 +0000 (22:50 -0800)
ce4a052 Add defvar-local to lisp-imenu-generic-expression
a0121bc Revert commit b1e3d14845517bfa9fa5d6d3840f3ab3160306fd
76fe2d5 * lisp/emacs-lisp/autoload.el (autoload-find-destination): Doc fix.
1ae088f * lisp/emacs-lisp/autoload.el (autoload-find-destination):
b6b47af Properly encode/decode base64Binary data in SOAP
c632466 Obey coding-system-for-write when writing stdout/stderr in batch
2f32cb5 * doc/misc/efaq.texi (Packages that do not come with Emacs):
        Update the URI of MELPA and marmalade-repo.
        Reported by CHENG Goa <chenggao@royau.me> in
        https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00390.html.
d2937aa * lisp/progmodes/opascal.el (opascal-mode-syntax-table):
5330c25 * lisp/progmodes/xscheme.el (xscheme-prompt-for-expression-exit):
7380990 Remove function wrongly on AWK Mode value of context
fontification hook.
d400753 * src/buffer.c: Stick with ASCII in doc string.
221240c Reword transient-mark-mode doc string
977d3ea Update doc string of 'selective-display'
229c3fa Make C++ buffers writeable when writing their initial text
        properties.
f5c762c Additional changes for "make check-expensive"
1729cf3 ; * admin/MAINTAINERS: Remove myself.
33219d3 Apply text properties for <, > in new after-change function
        (C++ Java Modes).

1  2 
CONTRIBUTE
doc/lispref/os.texi
etc/NEWS
lisp/emacs-lisp/autoload.el
test/Makefile.in

diff --cc CONTRIBUTE
index 19ec68221c467823eefd4c69a8e34116feeef2c5,9c53fe2ccccc4b5dbe90894501c3bf34f65da3f1..323f9b9d060a1e71262b485e9dac815d75b8638b
@@@ -262,12 -251,20 +262,20 @@@ Emacs uses ERT, Emacs Lisp Regression T
  "(ert)") or https://www.gnu.org/software/emacs/manual/html_node/ert/
  for more information on writing and running tests.
  
+ If your test lasts longer than some few seconds, mark it in its
+ `ert-deftest' definition with ":tags '(:expensive-test)".
  To run tests on the entire Emacs tree, run "make check" from the
  top-level directory.  Most tests are in the directory
 -"test/automated".  From the "test/automated" directory, run "make
 +"test/".  From the "test/" directory, run "make
  <filename>" to run the tests for <filename>.el(c).  See
 -"test/automated/Makefile" for more information.
 +"test/Makefile" for more information.
  
+ Tests which are tagged ":expensive-test" are enabled additionally, if
+ you run "make check-expensive" from the top-level directory.  "make
+ <filename>" as mentioned above incorporates expensive tests for
+ <filename>.el(c).
  ** Understanding Emacs Internals.
  
  The best way to understand Emacs Internals is to read the code,
Simple merge
diff --cc etc/NEWS
Simple merge
index 401b419a9939969ca355f7f7f3cade8064125a1c,e688d6be7253fa09c275ead531e8b2d96b5926d8..3405b09e6f5c65f40da2d406750910c9e0e8023a
@@@ -738,22 -717,12 +739,22 @@@ removes any prior now out-of-date autol
                                 ;; last-time is the time-stamp (specifying
                                 ;; the last time we looked at the file) and
                                 ;; the file hasn't been changed since.
-                                ((listp last-time)
 -                               (and (listp last-time)
 -                                    (not (time-less-p last-time file-time)))
++                               ((listp last-time) (= (length last-time) 2)
 +                                (not (time-less-p last-time file-time)))
 +                               ;; FIXME? Arguably we should throw a
 +                               ;; user error, or some kind of warning,
 +                               ;; if we were called from update-file-autoloads,
 +                               ;; which can update only a single input file.
 +                               ;; It's not appropriate to use the output
 +                               ;; file modtime in such a case,
 +                               ;; if there are multiple input files
 +                               ;; contributing to the output.
 +                               ((and output-time (eq t last-time))
 +                                (not (time-less-p output-time file-time)))
                                 ;; last-time is an MD5 checksum instead.
 -                               (and (stringp last-time)
 -                                    (equal last-time
 -                                           (md5 buf nil nil 'emacs-mule)))))
 +                               ((stringp last-time)
 +                                (equal last-time
 +                                     (md5 buf nil nil 'emacs-mule)))))
                           (throw 'up-to-date nil)
                         (autoload-remove-section begin)
                         (setq found t))))
index db386cebe293b4fb14f325556b74eeffda02e72a,0000000000000000000000000000000000000000..62443a195efdeb5f1750c26ab320bbc0838b5d89
mode 100644,000000..100644
--- /dev/null
@@@ -1,165 -1,0 +1,164 @@@
- ## Re-run all the tests every time.
 +### @configure_input@
 +
 +# Copyright (C) 2010-2016 Free Software Foundation, Inc.
 +
 +# This file is part of GNU Emacs.
 +
 +# GNU Emacs 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.
 +
 +# GNU Emacs 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 GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 +
 +### Commentary:
 +
 +## Some targets:
 +## check: re-run all tests, writing to .log files.
 +## check-maybe: run all tests whose .log file needs updating
 +## filename.log: run tests from filename.el(c) if .log file needs updating
 +## filename: re-run tests from filename.el(c), with no logging
 +
 +### Code:
 +
 +SHELL = @SHELL@
 +
 +srcdir = @srcdir@
 +VPATH = $(srcdir)
 +
 +SEPCHAR = @SEPCHAR@
 +
 +# We never change directory before running Emacs, so a relative file
 +# name is fine, and makes life easier.  If we need to change
 +# directory, we can use emacs --chdir.
 +EMACS = ../src/emacs
 +
 +EMACS_EXTRAOPT=
 +
 +# Command line flags for Emacs.
 +# Apparently MSYS bash would convert "-L :" to "-L ;" anyway,
 +# but we might as well be explicit.
 +EMACSOPT = -batch --no-site-file --no-site-lisp -L "$(SEPCHAR)$(srcdir)" $(EMACS_EXTRAOPT)
 +
 +# Prevent any settings in the user environment causing problems.
 +unexport EMACSDATA EMACSDOC EMACSPATH GREP_OPTIONS
 +
 +## To run tests under a debugger, set this to eg: "gdb --args".
 +GDB =
 +
 +# The locale to run tests under.  Tests should work if this is set to
 +# any supported locale.  Use the C locale by default, as it should be
 +# supported everywhere.
 +TEST_LOCALE = C
 +
 +# The actual Emacs command run in the targets below.
 +# Prevent any setting of EMACSLOADPATH in user environment causing problems.
 +emacs = EMACSLOADPATH= LC_ALL=$(TEST_LOCALE) EMACS_TEST_DIRECTORY=$(srcdir) \
 + $(GDB) "$(EMACS)" $(EMACSOPT)
 +
 +.PHONY: all check
 +
 +all: check
 +
 +%.elc: %.el
 +      @echo Compiling $<
 +      @$(emacs) -f batch-byte-compile $<
 +
 +## Ignore any test errors so we can continue to test other files.
 +## But compilation errors are always fatal.
 +WRITE_LOG = > $@ 2>&1 || { stat=ERROR; cat $@; }; echo $$stat: $@
 +
 +## I'd prefer to use -emacs -f ert-run-tests-batch-and-exit rather
 +## than || true, since the former makes problems more obvious.
 +## I'd also prefer to @-hide the grep part and not the
 +## ert-run-tests-batch-and-exit part.
 +##
 +## We need to use $loadfile because:
 +## i) -L :$srcdir -l basename does not work, because we have files whose
 +## basename duplicates a file in lisp/ (eg eshell.el).
 +## ii) Although -l basename will automatically load .el or .elc,
 +## -l ./basename treats basename as a literal file (it would be nice
 +## 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: %.el
 +      @if grep '^;.*no-byte-compile: t' $< > /dev/null; then \
 +        loadfile=$<; \
 +      else \
 +        loadfile=$<c; \
 +        ${MAKE} $$loadfile; \
 +      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 "${srcdir}/manual" -prune -o \
 +              -path "*resources" -prune -o -name "*el" -print)
 +## .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
 +## see what the problem was.
 +.PRECIOUS: %.log
 +
 +.PHONY: ${TESTS}
 +
 +## The short aliases that always re-run the tests, with no logging.
 +## Define an alias both with and without the directory name for ease
 +## of use.
 +define test_template
 +$(1):
 +      @test ! -f ./$(1).log || mv ./$(1).log ./$(1).log~
 +      @${MAKE} ./$(1).log WRITE_LOG=
 +
 +$(notdir $(1)): $(1)
 +endef
 +
 +$(foreach test,${TESTS},$(eval $(call test_template,${test})))
 +
 +## Include dependencies between test files and the files they test.
 +## We do this without the file and eval directly, but then we would
 +## have to run Emacs for every make invocation, and it might not be
 +## available during clean.
 +-include make-test-deps.mk
++## Rerun default tests.
 +check:
 +      -@for f in $(LOGFILES); do test ! -f $$f || mv $$f $$f~; done
 +      @${MAKE} check-maybe
 +
 +## Only re-run tests whose .log is older than the test.
 +.PHONY: check-maybe
 +check-maybe: ${LOGFILES}
 +      $(emacs) -l ert -f ert-summarize-tests-batch-and-exit $^
 +
 +.PHONY: mostlyclean clean bootstrap-clean distclean maintainer-clean
 +
 +clean mostlyclean:
 +      -rm -f ${LOGFILES} ${LOGSAVEFILES}
 +      -rm make-test-deps.mk
 +
 +bootstrap-clean: clean
 +      -rm -f ${ELCFILES}
 +
 +distclean: clean
 +      rm -f Makefile
 +
 +maintainer-clean: distclean bootstrap-clean
 +
 +make-test-deps.mk: $(ELFILES) make-test-deps.emacs-lisp
 +      $(EMACS) --batch -l $(srcdir)/make-test-deps.emacs-lisp \
 +      --eval "(make-test-deps \"$(srcdir)\")" \
 +      2> $@
 +# Makefile ends here.