From 48e99a7ee6b2ef12bb5d7861f5b71ccd6f69c6e9 Mon Sep 17 00:00:00 2001 From: Stefano Lattarini Date: Sat, 4 Aug 2012 15:29:21 +0200 Subject: [PATCH] coverage: byte-compiling elisp files in different subdirectories Where a '.el' file in a subdirectory might require a '.el' file in another one. This does not work out of the box, but can be made to work with a judicious use of $(AM_ELCFLAGS) (just introduced in the previous commit). * t/lisp-subdir-mix.sh: New test. * t/list-of-tests.mk: Add it. Signed-off-by: Stefano Lattarini --- t/lisp-subdir-mix.sh | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++ t/list-of-tests.mk | 1 + 2 files changed, 97 insertions(+) create mode 100755 t/lisp-subdir-mix.sh diff --git a/t/lisp-subdir-mix.sh b/t/lisp-subdir-mix.sh new file mode 100755 index 0000000..20073ec --- /dev/null +++ b/t/lisp-subdir-mix.sh @@ -0,0 +1,96 @@ +#! /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 . + +# Check compiling elisp files in different subdirectories, where a +# file in a subdirectory might require a file in another one. +# This doesn't work out of the box, but can be made to work with a +# judicious use of $(AM_ELCFLAGS). + +required=emacs +. ./defs || exit 1 + +cat >> configure.ac << 'END' +AM_PATH_LISPDIR +AC_OUTPUT +END + +cat > Makefile.am << 'END' +dist_lisp_LISP = \ + am-here.el \ + sub1/am-one.el \ + sub2/am-two.el \ + sub3/subsub/am-three.el + +AM_ELCFLAGS = \ + -L $(srcdir)/sub1 \ + -L $(srcdir)/sub2 \ + -L $(srcdir)/sub3/subsub + +elc-test: + test -f sub1/am-one.elc + test -f sub2/am-two.elc + test -f sub3/subsub/am-three.elc +.PHONY: elc-test +check-local: elc-test +END + +mkdir sub1 sub2 sub3 sub3/subsub + +cat > am-here.el << 'END' +(provide 'am-here) +(require 'am-one) +(require 'am-two) +(require 'am-three) +END + +cat > sub1/am-one.el << 'END' +(require 'am-here) +(provide 'am-one) +(require 'am-two) +(require 'am-three) +END + +cat > sub2/am-two.el << 'END' +(require 'am-here) +(require 'am-one) +(provide 'am-two) +(require 'am-three) +END + +cat > sub3/subsub/am-three.el << 'END' +(require 'am-here) +(require 'am-one) +(require 'am-two) +(provide 'am-three) +END + +$ACLOCAL +$AUTOCONF +$AUTOMAKE --add-missing + +./configure + +$MAKE +$MAKE elc-test +$MAKE clean +for x in am-here sub1/am-one sub2/am-two sub3/subsub/am-three; do + test -f $x.el + test ! -e $x.elc +done + +$MAKE distcheck + +: diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk index 84fc61c..35197a5 100644 --- a/t/list-of-tests.mk +++ b/t/list-of-tests.mk @@ -633,6 +633,7 @@ t/lisp8.sh \ t/lisp-loadpath.sh \ t/lisp-subdir.sh \ t/lisp-subdir2.sh \ +t/lisp-subdir-mix.sh \ t/lispdry.sh \ t/lisp-pr11806.sh \ t/lisp-flags.sh \ -- 2.7.4