test harness: improve catching of usage errors in script 'test-driver'
[platform/upstream/automake.git] / t / self-check-report.sh
1 #! /bin/sh
2 # Copyright (C) 2011-2013 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 # Sanity check for the automake testsuite.
18 # Test subroutines to report warnings, and to signal failures, skips
19 # and hard errors.
20
21 unset stderr_fileno_
22
23 am_create_testdir=empty
24 . test-init.sh
25
26 set +e
27
28 exec 5>&1
29
30 (warn_ foobar) 2>&1 1>&5 | grep '^foobar$'             || exit 1
31 (fail_ foo); test $? -eq 1                             || exit 1
32 (fail_ foo) 2>&1 1>&5 | grep "^$me: failed test: foo"  || exit 1
33 (skip_ foo); test $? -eq 77                            || exit 1
34 (skip_ foo) 2>&1 1>&5 | grep "^$me: skipped test: foo" || exit 1
35 (fatal_ foo); test $? -eq 99                           || exit 1
36 (fatal_ foo) 2>&1 1>&5 | grep "^$me: hard error: foo"  || exit 1
37 (framework_failure_ foo); test $? -eq 99               || exit 1
38 (framework_failure_ foo) 2>&1 1>&5 \
39   | grep "^$me: set-up failure: foo"                   || exit 1
40
41 stderr_fileno_=6
42
43 (warn_ foobar) 6>&1 1>&5 | grep '^foobar$'             || exit 1
44 (fail_ foo); test $? -eq 1                             || exit 1
45 (fail_ foo) 6>&1 1>&5 | grep "^$me: failed test: foo"  || exit 1
46 (skip_ foo); test $? -eq 77                            || exit 1
47 (skip_ foo) 6>&1 1>&5 | grep "^$me: skipped test: foo" || exit 1
48 (fatal_ foo); test $? -eq 99                           || exit 1
49 (fatal_ foo) 6>&1 1>&5 | grep "^$me: hard error: foo"  || exit 1
50 (framework_failure_ foo); test $? -eq 99               || exit 1
51 (framework_failure_ foo) 6>&1 1>&5 \
52   | grep "^$me: set-up failure: foo"                   || exit 1
53
54 :