xref: /minix3/external/bsd/bind/dist/unit/atf-src/bootstrap/t_atf_run.at (revision 00b67f09dd46474d133c95011a48590a8e8f94c7)
1*00b67f09SDavid van Moolenbroekdnl
2*00b67f09SDavid van Moolenbroekdnl Automated Testing Framework (atf)
3*00b67f09SDavid van Moolenbroekdnl
4*00b67f09SDavid van Moolenbroekdnl Copyright (c) 2007 The NetBSD Foundation, Inc.
5*00b67f09SDavid van Moolenbroekdnl All rights reserved.
6*00b67f09SDavid van Moolenbroekdnl
7*00b67f09SDavid van Moolenbroekdnl Redistribution and use in source and binary forms, with or without
8*00b67f09SDavid van Moolenbroekdnl modification, are permitted provided that the following conditions
9*00b67f09SDavid van Moolenbroekdnl are met:
10*00b67f09SDavid van Moolenbroekdnl 1. Redistributions of source code must retain the above copyright
11*00b67f09SDavid van Moolenbroekdnl    notice, this list of conditions and the following disclaimer.
12*00b67f09SDavid van Moolenbroekdnl 2. Redistributions in binary form must reproduce the above copyright
13*00b67f09SDavid van Moolenbroekdnl    notice, this list of conditions and the following disclaimer in the
14*00b67f09SDavid van Moolenbroekdnl    documentation and/or other materials provided with the distribution.
15*00b67f09SDavid van Moolenbroekdnl
16*00b67f09SDavid van Moolenbroekdnl THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
17*00b67f09SDavid van Moolenbroekdnl CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
18*00b67f09SDavid van Moolenbroekdnl INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19*00b67f09SDavid van Moolenbroekdnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20*00b67f09SDavid van Moolenbroekdnl IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
21*00b67f09SDavid van Moolenbroekdnl DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22*00b67f09SDavid van Moolenbroekdnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
23*00b67f09SDavid van Moolenbroekdnl GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24*00b67f09SDavid van Moolenbroekdnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
25*00b67f09SDavid van Moolenbroekdnl IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26*00b67f09SDavid van Moolenbroekdnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27*00b67f09SDavid van Moolenbroekdnl IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28*00b67f09SDavid van Moolenbroekdnl
29*00b67f09SDavid van Moolenbroek
30*00b67f09SDavid van MoolenbroekAT_SETUP([atf-run: execution of tests])
31*00b67f09SDavid van MoolenbroekAT_TESTED(atf-run)
32*00b67f09SDavid van Moolenbroek
33*00b67f09SDavid van Moolenbroekm4_define([CREATE_PASS_TEST],
34*00b67f09SDavid van Moolenbroek[AT_CHECK([sed -e 's,@TC_NAME@,$2,g' <TEST_HELPER_NO_S(tp_pass)],
35*00b67f09SDavid van Moolenbroek           [0], [stdout], [])
36*00b67f09SDavid van MoolenbroekAT_CHECK([mv stdout $1], [0], [], [])
37*00b67f09SDavid van MoolenbroekAT_CHECK([chmod +x $1], [0], [], [])
38*00b67f09SDavid van Moolenbroek])
39*00b67f09SDavid van Moolenbroek
40*00b67f09SDavid van Moolenbroekm4_define([CREATE_FAIL_TEST],
41*00b67f09SDavid van Moolenbroek[AT_CHECK([sed -e 's,@TC_NAME@,$2,g' <TEST_HELPER_NO_S(tp_fail)],
42*00b67f09SDavid van Moolenbroek           [0], [stdout], [])
43*00b67f09SDavid van MoolenbroekAT_CHECK([mv stdout $1], [0], [], [])
44*00b67f09SDavid van MoolenbroekAT_CHECK([chmod +x $1], [0], [], [])
45*00b67f09SDavid van Moolenbroek])
46*00b67f09SDavid van Moolenbroek
47*00b67f09SDavid van MoolenbroekAT_CHECK([mkdir top], [0], [], [])
48*00b67f09SDavid van MoolenbroekAT_CHECK([mkdir top/dir1], [0], [], [])
49*00b67f09SDavid van MoolenbroekAT_CHECK([mkdir top/dir2], [0], [], [])
50*00b67f09SDavid van MoolenbroekAT_DATA([top/Atffile],
51*00b67f09SDavid van Moolenbroek[Content-Type: application/X-atf-atffile; version="1"
52*00b67f09SDavid van Moolenbroek
53*00b67f09SDavid van Moolenbroekprop: test-suite = atf
54*00b67f09SDavid van Moolenbroek
55*00b67f09SDavid van Moolenbroektp: dir1
56*00b67f09SDavid van Moolenbroektp: dir2
57*00b67f09SDavid van Moolenbroektp: test1
58*00b67f09SDavid van Moolenbroektp: test2
59*00b67f09SDavid van Moolenbroek])
60*00b67f09SDavid van MoolenbroekAT_DATA([top/dir1/Atffile],
61*00b67f09SDavid van Moolenbroek[Content-Type: application/X-atf-atffile; version="1"
62*00b67f09SDavid van Moolenbroek
63*00b67f09SDavid van Moolenbroekprop: test-suite = atf
64*00b67f09SDavid van Moolenbroek
65*00b67f09SDavid van Moolenbroektp: test3
66*00b67f09SDavid van Moolenbroek])
67*00b67f09SDavid van MoolenbroekAT_DATA([top/dir2/Atffile],
68*00b67f09SDavid van Moolenbroek[Content-Type: application/X-atf-atffile; version="1"
69*00b67f09SDavid van Moolenbroek
70*00b67f09SDavid van Moolenbroekprop: test-suite = atf
71*00b67f09SDavid van Moolenbroek
72*00b67f09SDavid van Moolenbroektp: test4
73*00b67f09SDavid van Moolenbroektp: test5
74*00b67f09SDavid van Moolenbroek])
75*00b67f09SDavid van MoolenbroekCREATE_PASS_TEST([top/test1], [tc_1])
76*00b67f09SDavid van MoolenbroekCREATE_FAIL_TEST([top/test2], [tc_2])
77*00b67f09SDavid van MoolenbroekCREATE_PASS_TEST([top/dir1/test3], [tc_3])
78*00b67f09SDavid van MoolenbroekCREATE_FAIL_TEST([top/dir2/test4], [tc_4])
79*00b67f09SDavid van MoolenbroekCREATE_PASS_TEST([top/dir2/test5], [tc_5])
80*00b67f09SDavid van Moolenbroek
81*00b67f09SDavid van MoolenbroekAT_CHECK([cd top/dir1 && atf-run], [0], [stdout], [])
82*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_3, passed, stdout)
83*00b67f09SDavid van MoolenbroekAT_CHECK([grep -i 'tc_@<:@1245@:>@' stdout], [1], [], [])
84*00b67f09SDavid van MoolenbroekAT_CHECK([grep 'tc-so:ignore-me' stdout], [0], [ignore], [])
85*00b67f09SDavid van MoolenbroekAT_CHECK([grep 'tc-se:ignore-me' stdout], [0], [ignore], [])
86*00b67f09SDavid van Moolenbroek
87*00b67f09SDavid van MoolenbroekAT_CHECK([cd top/dir2 && atf-run], [1], [stdout], [stderr])
88*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_4, failed, stdout)
89*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_5, passed, stdout)
90*00b67f09SDavid van MoolenbroekAT_CHECK([grep -i 'tc_@<:@123@:>@' stdout], [1], [], [])
91*00b67f09SDavid van MoolenbroekAT_CHECK([grep 'tc-so:ignore-me' stdout], [0], [ignore], [])
92*00b67f09SDavid van MoolenbroekAT_CHECK([grep 'tc-se:ignore-me' stdout], [0], [ignore], [])
93*00b67f09SDavid van Moolenbroek
94*00b67f09SDavid van MoolenbroekAT_CHECK([cd top && atf-run], [1], [stdout], [stderr])
95*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_1, passed, stdout)
96*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_2, failed, stdout)
97*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_3, passed, stdout)
98*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_4, failed, stdout)
99*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_5, passed, stdout)
100*00b67f09SDavid van MoolenbroekAT_CHECK([grep 'tc-so:ignore-me' stdout], [0], [ignore], [])
101*00b67f09SDavid van MoolenbroekAT_CHECK([grep 'tc-se:ignore-me' stdout], [0], [ignore], [])
102*00b67f09SDavid van Moolenbroek
103*00b67f09SDavid van Moolenbroekdnl Repeat previous but using a glob that matches everything.
104*00b67f09SDavid van MoolenbroekAT_DATA([top/Atffile],
105*00b67f09SDavid van Moolenbroek[Content-Type: application/X-atf-atffile; version="1"
106*00b67f09SDavid van Moolenbroek
107*00b67f09SDavid van Moolenbroekprop: test-suite = atf
108*00b67f09SDavid van Moolenbroek
109*00b67f09SDavid van Moolenbroektp-glob: *
110*00b67f09SDavid van Moolenbroek])
111*00b67f09SDavid van MoolenbroekAT_CHECK([cd top && atf-run], [1], [stdout], [stderr])
112*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_1, passed, stdout)
113*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_2, failed, stdout)
114*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_3, passed, stdout)
115*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_4, failed, stdout)
116*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_5, passed, stdout)
117*00b67f09SDavid van MoolenbroekAT_CHECK([grep 'tc-so:ignore-me' stdout], [0], [ignore], [])
118*00b67f09SDavid van MoolenbroekAT_CHECK([grep 'tc-se:ignore-me' stdout], [0], [ignore], [])
119*00b67f09SDavid van Moolenbroek
120*00b67f09SDavid van Moolenbroekdnl Repeat previous but using a glob that matches directories only.
121*00b67f09SDavid van MoolenbroekAT_DATA([top/Atffile],
122*00b67f09SDavid van Moolenbroek[Content-Type: application/X-atf-atffile; version="1"
123*00b67f09SDavid van Moolenbroek
124*00b67f09SDavid van Moolenbroekprop: test-suite = atf
125*00b67f09SDavid van Moolenbroek
126*00b67f09SDavid van Moolenbroektp-glob: d*
127*00b67f09SDavid van Moolenbroek])
128*00b67f09SDavid van MoolenbroekAT_CHECK([cd top && atf-run], [1], [stdout], [stderr])
129*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_3, passed, stdout)
130*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_4, failed, stdout)
131*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_5, passed, stdout)
132*00b67f09SDavid van MoolenbroekAT_CHECK([grep 'tc-so:ignore-me' stdout], [0], [ignore], [])
133*00b67f09SDavid van MoolenbroekAT_CHECK([grep 'tc-se:ignore-me' stdout], [0], [ignore], [])
134*00b67f09SDavid van Moolenbroek
135*00b67f09SDavid van Moolenbroekdnl Make sure globs do not match non-executable nor hidden files.
136*00b67f09SDavid van Moolenbroekdnl XXX This is not really part of the bootstrap test suite.  Move to
137*00b67f09SDavid van Moolenbroekdnl tests/atf/tools/t_atf_run.sh when it exists.
138*00b67f09SDavid van MoolenbroekAT_CHECK([rm -rf top], [0], [], [])
139*00b67f09SDavid van MoolenbroekAT_CHECK([mkdir top], [0], [], [])
140*00b67f09SDavid van MoolenbroekCREATE_PASS_TEST([top/test1], [tc_1])
141*00b67f09SDavid van MoolenbroekCREATE_PASS_TEST([top/test2], [tc_2])
142*00b67f09SDavid van MoolenbroekCREATE_PASS_TEST([top/test3], [tc_3])
143*00b67f09SDavid van MoolenbroekAT_CHECK([chmod -x top/test3], [0], [], [])
144*00b67f09SDavid van MoolenbroekCREATE_PASS_TEST([top/.test4], [tc_4])
145*00b67f09SDavid van MoolenbroekAT_CHECK([chmod -x top/.test4], [0], [], [])
146*00b67f09SDavid van MoolenbroekAT_DATA([top/Atffile],
147*00b67f09SDavid van Moolenbroek[Content-Type: application/X-atf-atffile; version="1"
148*00b67f09SDavid van Moolenbroek
149*00b67f09SDavid van Moolenbroekprop: test-suite = atf
150*00b67f09SDavid van Moolenbroek
151*00b67f09SDavid van Moolenbroektp-glob: *
152*00b67f09SDavid van Moolenbroek])
153*00b67f09SDavid van MoolenbroekAT_CHECK([cd top && atf-run], [0], [stdout], [stderr])
154*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_1, passed, stdout)
155*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(tc_2, passed, stdout)
156*00b67f09SDavid van MoolenbroekAT_CHECK([grep -i 'tc_3' stdout], [1], [ignore], [])
157*00b67f09SDavid van MoolenbroekAT_CHECK([grep -i 'tc_4' stdout], [1], [ignore], [])
158*00b67f09SDavid van Moolenbroek
159*00b67f09SDavid van Moolenbroekdnl Run all test cases from a test program.
160*00b67f09SDavid van MoolenbroekAT_CHECK([rm -rf top], [0], [], [])
161*00b67f09SDavid van MoolenbroekAT_CHECK([mkdir top], [0], [], [])
162*00b67f09SDavid van MoolenbroekAT_CHECK([cp TEST_HELPER_NO_S(tp_basic_sh) top])
163*00b67f09SDavid van MoolenbroekAT_DATA([top/Atffile],
164*00b67f09SDavid van Moolenbroek[Content-Type: application/X-atf-atffile; version="1"
165*00b67f09SDavid van Moolenbroek
166*00b67f09SDavid van Moolenbroekprop: test-suite = atf
167*00b67f09SDavid van Moolenbroek
168*00b67f09SDavid van Moolenbroektp: h_tp_basic_sh
169*00b67f09SDavid van Moolenbroek])
170*00b67f09SDavid van MoolenbroekAT_CHECK([cd top && atf-run], [1], [stdout], [stderr])
171*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(pass, passed, stdout)
172*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(fail, failed, stdout)
173*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(skip, skipped, stdout)
174*00b67f09SDavid van MoolenbroekCHECK_TPS_TCR(default, passed, stdout)
175*00b67f09SDavid van Moolenbroek
176*00b67f09SDavid van MoolenbroekAT_CLEANUP()
177*00b67f09SDavid van Moolenbroek
178*00b67f09SDavid van Moolenbroekdnl vim: syntax=m4:expandtab:shiftwidth=4:softtabstop=4
179