Merge branch 'master' into testsuite-work
[platform/upstream/automake.git] / tests / parallel-tests-ext-driver-prog.test
1 #! /bin/sh
2 # Copyright (C) 2009, 2010, 2011 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 parallel-tests features:
18 # - per-extension test drivers (xxx_LOG_COMPILER and xxx_LOG_FLAGS),
19 #   when some tests are PROGRAMS.
20 # See also related test 'parallel-tests-ext-driver.test'.
21
22 parallel_tests=yes
23 required='cc native'
24 . ./defs || Exit 1
25
26 cat >> configure.in << 'END'
27 AC_PROG_CC
28 AC_OUTPUT
29 END
30
31 cat > Makefile.am << 'END'
32 ## Note that automake should not match the '/test' part
33 ## of 'sub/test' as '.test' suffix.
34 TESTS = foo.chk bar.test $(check_PROGRAMS) sub/test
35 check_PROGRAMS = baz bla.test bli.suff
36 TEST_EXTENSIONS = .chk .test
37 CHK_LOG_COMPILER = ./chk-driver
38 TEST_LOG_COMPILER = ./test-driver
39 LOG_COMPILER = ./noext-driver
40 AM_CHK_LOG_FLAGS = 1
41 CHK_LOG_FLAGS = 2
42 AM_TEST_LOG_FLAGS = 3
43 TEST_LOG_FLAGS = 4
44 AM_LOG_FLAGS = 5
45 LOG_FLAGS = 6
46 END
47
48 mkdir sub
49
50 cat >chk-driver <<'END'
51 #! /bin/sh
52 echo $0 "$@"
53 shift
54 shift
55 exec "$@"
56 exit 127
57 END
58 chmod a+x chk-driver
59 cp chk-driver test-driver
60 cp chk-driver noext-driver
61
62 cat >foo.chk << 'END'
63 #! /bin/sh
64 exit 0
65 END
66 chmod a+x foo.chk
67 cp foo.chk bar.test
68 cp foo.chk sub/test
69
70 cat >baz.c << 'END'
71 int main (void)
72 {
73   return 0;
74 }
75 END
76 cp baz.c bla.c
77 cp baz.c bli.c
78
79 $ACLOCAL
80 $AUTOCONF
81 $AUTOMAKE -a
82
83 ./configure
84 $MAKE check || { cat test-suite.log; Exit 1; }
85 ls -l . sub
86 cat test-suite.log
87 grep 'chk-driver  *1  *2 ' foo.log
88 grep 'test-driver  *3  *4 ' bar.log
89 grep 'noext-driver  *5  *6 ' baz.log
90 grep 'test-driver  *3  *4 ' bla.log
91 grep 'noext-driver  *5  *6 ' bli.suff.log
92 grep 'noext-driver  *5  *6 ' sub/test.log
93
94 :