7aa2c7f094145c833ef8cfa196c08ad849c5391c
[platform/upstream/automake.git] / t / tap-number-wordboundary.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 # TAP support:
18 #  - TAP result numbers terminated by a non-whitespace "word boundary"
19 #    character are recognized
20
21 am_parallel_tests=yes
22 . ./defs || Exit 1
23
24 . "$am_testauxdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh"
25
26 cat > all.test <<'END'
27 1..5
28 ok 1: foo1
29 not ok 2- foo2
30 ok 3@ foo3 # SKIP
31 not ok 4?&%$ foo4 # TODO
32 ok 5"`!! foo5 # TODO
33 END
34
35 $MAKE check >stdout && { cat stdout; Exit 1; }
36 cat stdout
37
38 count_test_results total=5 pass=1 fail=1 skip=1 xpass=1 xfail=1 error=0
39
40 $EGREP '^PASS: all\.test 1 ?: foo1$' stdout
41 $EGREP '^FAIL: all\.test 2 ?- foo2$' stdout
42 $EGREP '^SKIP: all\.test 3 ?@ foo3 # SKIP$' stdout
43 $EGREP '^XFAIL: all\.test 4 ?\?&%\$ foo4 # TODO$' stdout
44 $EGREP '^XPASS: all\.test 5 ?"`!! foo5 # TODO$' stdout
45
46 cat > all.test <<'END'
47 1..3
48 ok 2: quux
49 not ok 1!
50 ok 476$ # SKIP
51 END
52
53 $MAKE check >stdout && { cat stdout; Exit 1; }
54 cat stdout
55
56 count_test_results total=3 pass=0 fail=0 skip=0 xpass=0 xfail=0 error=3
57
58 $EGREP '^ERROR: all\.test 2 ?: quux # OUT-OF-ORDER \(expecting 1\)$' stdout
59 $EGREP '^ERROR: all\.test 1 ?! # OUT-OF-ORDER \(expecting 2\)$' stdout
60 $EGREP '^ERROR: all\.test 476 ?\$ # OUT-OF-ORDER \(expecting 3\)$' stdout
61
62 cat > punctuation <<'END'
63 '
64 "
65 `
66 #
67 $
68 !
69 \
70 /
71 &
72 %
73 (
74 )
75 |
76 ^
77 ~
78 ?
79 *
80 +
81 -
82 ,
83 :
84 ;
85 =
86 <
87 >
88 @
89 [
90 ]
91 {
92 }
93 \
94 END
95
96 # Strip any extra whitespace, for Solaris' wc.
97 planned=`wc -l <punctuation | tr -d " $tab"`
98
99 echo 1..$planned > all.test
100 awk '{print "ok " NR $0 }' punctuation >> all.test
101 # For debugging.
102 cat all.test
103 # Sanity check.
104 grep "^ok 1'$" all.test || framework_failure_ "creating all.test"
105
106 $MAKE check >stdout || { cat stdout; Exit 1; }
107 cat stdout
108
109 count_test_results total=$planned pass=$planned \
110                    fail=0 skip=0 xpass=0 xfail=0 error=0
111
112 :