Implement colorized test output.
[automake/plouj.git] / tests / color.test
blobb7ba486ce44868b9aa7d17fe852e1d674fd8a53f
1 #! /bin/sh
2 # Copyright (C) 2007 Free Software Foundation, Inc.
4 # This file is part of GNU Automake.
6 # GNU Automake is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3, or (at your option)
9 # any later version.
11 # GNU Automake is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with Automake; see the file COPYING. If not, write to
18 # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 # Boston, MA 02110-1301, USA.
21 # Test Automake TESTS color output.
23 . ./defs || exit 1
25 set -e
27 red='\e[0;31m'
28 grn='\e[0;32m'
29 lgn='\e[1;32m'
30 blu='\e[1;34m'
31 std='\e[m'
33 cat >>configure.in <<END
34 AC_OUTPUT
35 END
37 cat >Makefile.am <<'END'
38 AUTOMAKE_OPTIONS = color-tests
39 TESTS = $(check_SCRIPTS)
40 check_SCRIPTS = pass fail skip xpass xfail
41 XFAIL_TESTS = xpass xfail
42 END
44 cat >pass <<END
45 #! /bin/sh
46 exit 0
47 END
49 cat >fail <<END
50 #! /bin/sh
51 exit 1
52 END
54 cat >skip <<END
55 #! /bin/sh
56 exit 77
57 END
59 cp fail xfail
60 cp pass xpass
61 chmod +x pass fail skip xpass xfail
63 $ACLOCAL
64 $AUTOMAKE
65 $AUTOCONF
66 ./configure
68 test_color ()
70 grep ": pass" stdout | $FGREP "$grn"
71 grep ": fail" stdout | $FGREP "$red"
72 grep ": xfail" stdout | $FGREP "$lgn"
73 grep ": xpass" stdout | $FGREP "$red"
74 grep ": skip" stdout | $FGREP "$blu"
77 test_no_color ()
79 grep ": pass" stdout | $FGREP "$grn" && exit 1
80 grep ": fail" stdout | $FGREP "$red" && exit 1
81 grep ": xfail" stdout | $FGREP "$lgn" && exit 1
82 grep ": xpass" stdout | $FGREP "$red" && exit 1
83 grep ": skip" stdout | $FGREP "$blu" && exit 1
87 cat >expect-make <<'END'
88 #! /usr/bin/expect -f
89 spawn $env(MAKE) check $argv
90 expect eof
91 END
93 $MAKE check AM_COLOR_TESTS=always >stdout && { cat stdout; exit 1; }
94 cat stdout
95 test_color
97 MAKE=$MAKE expect -f expect-make foo= >stdout || exit 77
98 cat stdout
99 test_color
101 MAKE=$MAKE expect -f expect-make AM_COLOR_TESTS=no >stdout || exit 77
102 cat stdout
103 test_no_color