diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-04-06 13:12:25 +0200 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-04-06 21:29:30 +0200 |
commit | 8a5096d150cf9803b8963768b7366cd68edcce03 (patch) | |
tree | a49c0e54876b8b9877d7ca2df386377e7b6037d1 /t/maken3.sh | |
parent | f8e822bbc197f01fc722aa6def7cddb4182e3c66 (diff) | |
download | automake-8a5096d150cf9803b8963768b7366cd68edcce03.tar.gz |
tests: rename 'tests/' => 't/', '*.test' => '*.sh'
When we (soon) convert the Automake testsuite to a non-recursive
make setup, we'll have to fix the entries of $(TESTS) to be
prepended with the subdirectory they are in; this will increase
the length of $(TESTS), and thus increase the possibility of
exceeding the command-line length limits on some systems (most
notably, MinGW/MSYS). See automake bug#7868 for more information.
Thus we rename the 'tests/' subdirectory to 't/', and each 'x.test'
script in there to 'x.sh'; this way, the $(TESTS) entry 'foo.test'
will become 't/foo.sh', which have the same number of characters.
* tests/: Rename ...
* t/: ... to this.
* t/*.test: Rename ...
* t/*.sh: ... to this.
* t/.gitignore: Removed as obsolete.
* t/defs: Adjust.
* t/gen-testsuite-part: Likewise.
* t/list-of-tests.mk: Likewise.
* t/ccnoco.sh: Likewise.
* t/ccnoco3.sh: Likewise.
* t/self-check-cleanup.tap: Likewise.
* t/self-check-dir.tap: Likewise.
* t/self-check-me.tap: Likewise.
* t/self-check-reexec.tap: Likewise.
* README: Likewise.
* bootstrap: Likewise
* configure.ac: Likewise.
* Makefile.am: Likewise.
* .gitignore: Likewise.
* syntax-check.mk: Likewise.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 't/maken3.sh')
-rwxr-xr-x | t/maken3.sh | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/t/maken3.sh b/t/maken3.sh new file mode 100755 index 000000000..2018549e5 --- /dev/null +++ b/t/maken3.sh @@ -0,0 +1,190 @@ +#! /bin/sh +# Copyright (C) 2009-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/>. + +# Test 'make -n' for various targets, to ensure that: +# +# 1. no files or directories are created or removed, and +# +# 2. if using GNU make or a make implementation supporting the .MAKE +# special target, the output from make is sufficiently complete. +# +# This test exercises the GCS-mandated targets (except for dist) +# as well as tags, TAGS. + +. ./defs || Exit 1 + +# Does $MAKE support the '.MAKE' special target? +have_dotmake=false +if using_gmake; then + have_dotmake=: # GNU make must support it. +else + unindent > mk.tmp << 'END' + targ.tmp: + : > $@ + .MAKE: targ.tmp +END + if $MAKE -n -f mk.tmp targ.tmp && test -f targ.tmp; then + have_dotmake=: + fi +fi + +mkdir sub sub2 + +cat >> configure.ac << 'END' +AC_CONFIG_FILES([sub/Makefile sub2/Makefile]) +AC_OUTPUT +END + +cat > Makefile.am <<'END' +TESTS = foo.test +SUBDIRS = sub sub2 +##BUILT_SOURCES = foo +foo: +foo.test: +all-local: + @: > stamp-all +install-data-local: + @: > stamp-install +uninstall-local: + @: > stamp-uninstall +clean-local: + @: > stamp-clean +distclean-local: + @: > stamp-distclean +info-local: + @: > stamp-info +html-local: + @: > stamp-html +dvi-local: + @: > stamp-dvi +ps-local: + @: > stamp-ps +pdf-local: + @: > stamp-pdf +check-local: + @: > stamp-check +installcheck-local: + @: > stamp-installcheck +mostlyclean-local: + @: > stamp-mostlyclean +maintainer-clean-local: + @: > stamp-maintainer-clean +END +cat >sub/Makefile.am <<'END' +all-local: + @: > stamp-all-sub +install-data-local: + @: > stamp-install-sub +uninstall-local: + @: > stamp-uninstall-sub +clean-local: + @: > stamp-clean-sub +distclean-local: + @: > stamp-distclean-sub +info-local: + @: > stamp-info-sub +html-local: + @: > stamp-html-sub +dvi-local: + @: > stamp-dvi-sub +ps-local: + @: > stamp-ps-sub +pdf-local: + @: > stamp-pdf-sub +check-local: + @: > stamp-check-sub +installcheck-local: + @: > stamp-installcheck-sub +tags: + @: > stamp-tags-sub +TAGS: + @: > stamp-TAGS-sub +mostlyclean-local: + @: > stamp-mostlyclean-sub +maintainer-clean-local: + @: > stamp-maintainer-clean-sub +END +cat >sub2/Makefile.am <<'END' +all install uninstall clean check: + @: > sub2-$@-should-not-be-executed +info dvi pdf ps: + @: > sub2-$@-should-not-be-executed +html: + @: > sub2-$@-should-not-be-executed +install-info install-html install-dvi install-pdf install-ps: + @: > sub2-$@-should-not-be-executed +installcheck installdirs tags TAGS mostlyclean: + @: > sub2-$@-should-not-be-executed +## These targets cannot be overridden like this: +## install-strip distclean maintainer-clean +END + +$ACLOCAL +$AUTOCONF + +check_targets () +{ + for target in \ + all install install-strip uninstall clean distclean check \ + info html dvi pdf ps \ + install-info install-html install-dvi install-pdf install-ps \ + installcheck installdirs tags TAGS mostlyclean maintainer-clean + do + $MAKE -n $target >stdout || { cat stdout; Exit 1; } + cat stdout + case $target in + install-* | installdirs | tags | TAGS ) ;; + *) + if $have_dotmake; then + grep "stamp-$target$" stdout || Exit 1 + fi + test ! -f "stamp-$target$" || Exit 1 + ;; + esac + case $target in + install-* | installdirs ) ;; + *) + if $have_dotmake; then + grep "stamp-$target-sub" stdout || Exit 1 + fi + test ! -f "sub/stamp-$target-sub" || Exit 1 + ;; + esac + case $target in + distclean | maintainer-clean ) ;; + *) + if $have_dotmake; then + grep "should-not-be-executed" stdout || Exit 1 + fi + test ! -f "sub2/sub2-$target-should-not-be-executed" || Exit 1 + ;; + esac + done +} + +$AUTOMAKE -a -Wno-override +./configure +check_targets || Exit 1 + +# Now, introduce BUILT_SOURCES into the toplevel Makefile +# TODO: add BUILT_SOURCES to sub2, fix fallout. +sed 's/##//' < Makefile.am > t +mv -f t Makefile.am +$AUTOMAKE -Wno-override --force Makefile +./configure +check_targets || Exit 1 + +Exit 0 |