* t/lisp-loadpath.sh: Check that. Also check that, in true VPATH spirit, elisp files in the build directory are preferred to those in the source directory. This test currently fails. * t/list-of-tests.mk (handwritten_TESTS): Add the new test. (XFAIL_TESTS): Likewise.
Signed-off-by: Stefano Lattarini <stefano.lattar...@gmail.com> --- t/lisp-loadpath.sh | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++ t/list-of-tests.mk | 2 ++ 2 files changed, 69 insertions(+) create mode 100755 t/lisp-loadpath.sh diff --git a/t/lisp-loadpath.sh b/t/lisp-loadpath.sh new file mode 100755 index 0000000..50748ce --- /dev/null +++ b/t/lisp-loadpath.sh @@ -0,0 +1,67 @@ +#! /bin/sh +# Copyright (C) 2012 Free Software Foundation, Inc. +# +# This program 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 2, or (at your option) +# any later version. +# +# This program 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 this program. If not, see <http://www.gnu.org/licenses/>. + +# Emacs lisp files in both $(srcdir) and $(builddir) are found if +# required by other files. Related to automake bug#11806. + +required=emacs +. ./defs || exit 1 + +cat >> configure.ac << 'END' +AM_PATH_LISPDIR +AC_OUTPUT +END + +cat > Makefile.am << 'END' +noinst_LISP = requirer.el +lisp_LISP = foo.el +lisp_DATA = bar.el +END + +echo "(require 'foo) (require 'bar)" >> requirer.el +echo "(provide 'foo)" > foo.el +echo "(provide 'bar)" > bar.el + +$ACLOCAL +$AUTOCONF +$AUTOMAKE -a + +mkdir build +cd build +../configure +$MAKE +test -f requirer.elc +test -f foo.elc +test ! -e bar.elc + +$MAKE clean +test ! -e requirer.elc +test ! -e foo.elc + +# In the spirit of VPATH, stuff in the builddir is preferred to +# stuff in the srcdir. +echo "(provide" > ../foo.el # Break it. +echo "defun)" > ../bar.el # Likewise. +$MAKE && Exit 1 +$sleep +echo "(provide 'foo)" > foo.el +echo "(provide 'bar)" > bar.el +$MAKE +test -f requirer.elc +test -f foo.elc +test ! -e bar.elc + +: diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk index 40665c1..0f7bae0 100644 --- a/t/list-of-tests.mk +++ b/t/list-of-tests.mk @@ -38,6 +38,7 @@ t/override-conditional-2.sh \ t/dist-pr109765.sh \ t/instdir-cond2.sh \ t/java-nobase.sh \ +t/lisp-loadpath.sh \ t/lisp-subdir.sh \ t/lisp-subdir2.sh \ t/objext-pr10128.sh \ @@ -632,6 +633,7 @@ t/lisp5.sh \ t/lisp6.sh \ t/lisp7.sh \ t/lisp8.sh \ +t/lisp-loadpath.sh \ t/lisp-subdir.sh \ t/lisp-subdir2.sh \ t/lispdry.sh \ -- 1.7.9.5