tests: use 'parallel-tests' Automake option by default
[platform/upstream/automake.git] / t / test-driver-is-distributed.sh
1 #! /bin/sh
2 # Copyright (C) 2011-2012 Free Software Foundation, Inc.
3 #
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2, or (at your option)
7 # any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
17 # Check regression of parallel-tests:
18 #  - 'test-driver' script not correctly distributed when TESTS is
19 #    defined in a subdir Makefile
20
21 am_create_testdir=empty
22 . ./defs || Exit 1
23
24 ocwd=`pwd` || fatal_ "getting current working directory"
25
26 do_check ()
27 {
28   whereopts=$1 auxdir=$2
29   case $#,$whereopts in
30     2,ac) ac_opts=parallel-tests am_code= ;;
31     2,am) am_opts=parallel-tests ac_code= ;;
32        *) fatal_ "do_check: bad usage";;
33   esac
34   mkdir $whereopts
35   cd $whereopts
36   mkdir tests
37   unindent > configure.ac << END
38     AC_INIT([$me], [1.0])
39     AC_CONFIG_AUX_DIR([$auxdir])
40     AM_INIT_AUTOMAKE([$ac_opts])
41     AC_CONFIG_FILES([Makefile tests/Makefile])
42     AC_OUTPUT
43 END
44   if test $auxdir = .; then
45     test_driver=test-driver
46   else
47     mkdir $auxdir
48     test_driver=$auxdir/test-driver
49   fi
50   # No 'AUTOMAKE_OPTIONS' in here -- purposely.
51   unindent > Makefile.am << END
52     SUBDIRS = tests
53     check-local: test-top
54     test-top: distdir
55         ls -l \$(distdir) \$(distdir)/* ;: For debugging.
56         test -f \$(distdir)/$test_driver
57     .PHONY: test-top
58 END
59   unindent > tests/Makefile.am << END
60     AUTOMAKE_OPTIONS = $am_opts
61     check-local: test-sub
62     test-sub:
63         echo ' ' \$(DIST_COMMON) ' ' | grep '[ /]$test_driver '
64     TESTS = foo.test
65     EXTRA_DIST = \$(TESTS)
66 END
67   unindent > tests/foo.test << 'END'
68     #!/bin/sh
69     exit 0
70 END
71   chmod a+x tests/foo.test
72   $ACLOCAL
73   $AUTOCONF
74   $AUTOMAKE -a
75   ./configure
76   $MAKE test-top
77   cd tests
78   $MAKE test-sub
79   cd ..
80   $MAKE distcheck
81   # Try code path without automatic installation of required files.
82   mv -f Makefile.in Makefile.sav
83   mv -f tests/Makefile.in tests/Makefile.sav
84   $AUTOMAKE
85   diff Makefile.in Makefile.sav
86   diff tests/Makefile.in tests/Makefile.sav
87   :
88 }
89
90 do_check ac .
91 do_check am build-aux
92
93 :