Merge branch master into maint after 1.12 release
[platform/upstream/automake.git] / t / parallel-tests-log-compiler-2.sh
1 #! /bin/sh
2 # Copyright (C) 2009-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 parallel-tests features:
18 # - per-extension "test runners" a.k.a. "log compilers" (xxx_LOG_COMPILER
19 #   and xxx_LOG_FLAGS), when some tests are PROGRAMS.
20 # See also related test 'parallel-tests-log-compiler-1.test'.
21
22 am_parallel_tests=yes
23 required='cc native'
24 . ./defs || Exit 1
25
26 cat >> configure.ac << '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-compiler
38 TEST_LOG_COMPILER = ./test-compiler
39 LOG_COMPILER = ./noext-compiler
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-compiler <<'END'
51 #! /bin/sh
52 echo $0 "$@"
53 shift
54 shift
55 exec "$@"
56 exit 127
57 END
58 chmod a+x chk-compiler
59 cp chk-compiler test-compiler
60 cp chk-compiler noext-compiler
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
85 $MAKE
86 $MAKE check || { cat test-suite.log; Exit 1; }
87 ls -l . sub
88 cat test-suite.log
89 grep 'chk-compiler  *1  *2' foo.log
90 grep 'test-compiler  *3  *4' bar.log
91 grep 'noext-compiler  *5  *6' baz.log
92 grep 'test-compiler  *3  *4' bla.log
93 grep 'noext-compiler  *5  *6' bli.suff.log
94 grep 'noext-compiler  *5  *6' sub/test.log
95
96 :