automake-patches
[Top][All Lists]
Advanced

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

subst3.test


From: Ralf Wildenhues
Subject: subst3.test
Date: Wed, 30 Jan 2008 21:41:30 +0100
User-agent: Mutt/1.5.13 (2006-08-11)

Another test adapted from nobase.test, ensuring that @substituted@ base
and nobase thingies are installed correctly.  All recent new tests
should help ensure that the fast install does not cause regressions.

Applied to master.

Cheers,
Ralf

2008-01-30  Ralf Wildenhues  <address@hidden>

        * tests/subst3.test: New test.
        * tests/Makefile.am: Update.

diff --git a/tests/Makefile.am b/tests/Makefile.am
index ec10801..d1c78a6 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -544,6 +544,7 @@ subpkg2.test \
 subpkg3.test \
 subst.test \
 subst2.test \
+subst3.test \
 substref.test \
 substre2.test \
 substtarg.test \
diff --git a/tests/subst3.test b/tests/subst3.test
new file mode 100755
index 0000000..b0f5b43
--- /dev/null
+++ b/tests/subst3.test
@@ -0,0 +1,177 @@
+#! /bin/sh
+# Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2008  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 3, 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/>.
+
+# Test installation with substitutions.  This test is based on nobase.test.
+
+required='gcc'
+. ./defs || exit 1
+
+set -e
+
+cat >> configure.in <<'EOF'
+AC_PROG_CC
+AC_PROG_RANLIB
+if test -n "$doit"; then
+  AC_SUBST([basehdr], [sub/base.h])
+  AC_SUBST([nobasehdr], [sub/nobase.h])
+  AC_SUBST([basedata], [sub/base.dat])
+  AC_SUBST([nobasedata], [sub/nobase.dat])
+  AC_SUBST([basescript], [sub/base.sh])
+  AC_SUBST([nobasescript], [sub/nobase.sh])
+  AC_SUBST([baseprog], ['sub/base$(EXEEXT)'])
+  AC_SUBST([nobaseprog], ['sub/nobase$(EXEEXT)'])
+  AC_SUBST([baselib], [sub/libbase.a])
+  AC_SUBST([nobaselib], [sub/libnobase.a])
+fi
+AC_OUTPUT
+EOF
+
+cat > Makefile.am << 'EOF'
+foodir = $(prefix)/foo
+fooexecdir = $(prefix)/foo
+
+foo_HEADERS = @basehdr@
+nobase_foo_HEADERS = @nobasehdr@
+EXTRA_HEADERS = sub/base.h sub/nobase.h
+
+dist_foo_DATA = @basedata@
+nobase_dist_foo_DATA = @nobasedata@
+
+dist_fooexec_SCRIPTS = @basescript@
+nobase_dist_fooexec_SCRIPTS = @nobasescript@
+EXTRA_SCRIPTS = sub/base.sh sub/nobase.sh
+
+fooexec_PROGRAMS = @baseprog@
+nobase_fooexec_PROGRAMS = @nobaseprog@
+EXTRA_PROGRAMS = sub/base sub/nobase
+sub_base_SOURCES = source.c
+sub_nobase_SOURCES = source.c
+
+fooexec_LIBRARIES = @baselib@
+nobase_fooexec_LIBRARIES = @nobaselib@
+EXTRA_LIBRARIES = sub/libbase.a sub/libnobase.a
+sub_libbase_a_SOURCES = source.c
+sub_libnobase_a_SOURCES = source.c
+
+test-install-data: install-data
+       test   -f inst/foo/sub/nobase.h
+       test ! -f inst/foo/nobase.h
+       test   -f inst/foo/base.h
+       test   -f inst/foo/sub/nobase.dat
+       test ! -f inst/foo/nobase.dat
+       test   -f inst/foo/base.dat
+       test ! -f inst/foo/sub/pnobase.sh
+       test ! -f inst/foo/pbase.sh
+       test ! -f inst/foo/sub/pnobase$(EXEEXT)
+       test ! -f inst/foo/pbase$(EXEEXT)
+       test ! -f inst/foo/sub/libnobase.a
+       test ! -f inst/foo/libbase.a
+
+test-install-exec: install-exec
+       test   -f inst/foo/sub/pnobase.sh
+       test ! -f inst/foo/pnobase.sh
+       test   -f inst/foo/pbase.sh
+       test   -f inst/foo/sub/pnobase$(EXEEXT)
+       test ! -f inst/foo/pnobase$(EXEEXT)
+       test   -f inst/foo/pbase$(EXEEXT)
+       test   -f inst/foo/sub/libnobase.a
+       test ! -f inst/foo/libnobase.a
+       test   -f inst/foo/libbase.a
+
+test-install-nothing-data: install-data
+       test ! -f inst/foo/sub/nobase.h
+       test ! -f inst/foo/nobase.h
+       test ! -f inst/foo/base.h
+       test ! -f inst/foo/sub/nobase.dat
+       test ! -f inst/foo/nobase.dat
+       test ! -f inst/foo/base.dat
+       test ! -f inst/foo/sub/pnobase.sh
+       test ! -f inst/foo/pbase.sh
+       test ! -f inst/foo/sub/pnobase$(EXEEXT)
+       test ! -f inst/foo/pbase$(EXEEXT)
+       test ! -f inst/foo/sub/libnobase.a
+       test ! -f inst/foo/libbase.a
+
+test-install-nothing-exec: install-exec
+       test ! -f inst/foo/sub/pnobase.sh
+       test ! -f inst/foo/pnobase.sh
+       test ! -f inst/foo/pbase.sh
+       test ! -f inst/foo/sub/pnobase$(EXEEXT)
+       test ! -f inst/foo/pnobase$(EXEEXT)
+       test ! -f inst/foo/pbase$(EXEEXT)
+       test ! -f inst/foo/sub/libnobase.a
+       test ! -f inst/foo/libnobase.a
+       test ! -f inst/foo/libbase.a
+EOF
+
+mkdir sub
+
+: > sub/base.h
+: > sub/nobase.h
+: > sub/base.dat
+: > sub/nobase.dat
+: > sub/base.sh
+: > sub/nobase.sh
+
+cat >source.c <<'EOF'
+int
+main (int argc, char *argv[])
+{
+  return 0;
+}
+EOF
+cp source.c source2.c
+
+rm -f install-sh
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a --copy
+./configure --prefix "`pwd`/inst" --program-prefix=p doit=yes
+
+$MAKE
+$MAKE test-install-data
+$MAKE test-install-exec
+$MAKE uninstall
+$MAKE clean
+
+test `find inst/foo -type f -print | wc -l` = 0
+
+./configure --prefix "`pwd`/inst" --program-prefix=p doit=
+
+$MAKE
+$MAKE test-install-nothing-data
+$MAKE test-install-nothing-exec
+$MAKE uninstall
+
+
+# Likewise, in a VPATH build.
+
+$MAKE distclean
+mkdir build
+cd build
+../configure --prefix "`pwd`/inst" --program-prefix=p doit=yes
+$MAKE
+$MAKE test-install-data
+$MAKE test-install-exec
+$MAKE uninstall
+test `find inst/foo -type f -print | wc -l` = 0
+
+../configure --prefix "`pwd`/inst" --program-prefix=p doit=
+$MAKE
+$MAKE test-install-nothing-data
+$MAKE test-install-nothing-exec




reply via email to

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