xref: /freebsd/contrib/netbsd-tests/sys/rc/t_rc_d_cli.sh (revision 9268022b74279434ed6300244e3f977e56a8ceb5)
1*57718be8SEnji Cooper# $NetBSD: t_rc_d_cli.sh,v 1.4 2010/11/07 17:51:21 jmmv Exp $
2*57718be8SEnji Cooper#
3*57718be8SEnji Cooper# Copyright (c) 2010 The NetBSD Foundation, Inc.
4*57718be8SEnji Cooper# All rights reserved.
5*57718be8SEnji Cooper#
6*57718be8SEnji Cooper# This code is derived from software contributed to The NetBSD Foundation
7*57718be8SEnji Cooper# by Julio Merino.
8*57718be8SEnji Cooper#
9*57718be8SEnji Cooper# Redistribution and use in source and binary forms, with or without
10*57718be8SEnji Cooper# modification, are permitted provided that the following conditions
11*57718be8SEnji Cooper# are met:
12*57718be8SEnji Cooper# 1. Redistributions of source code must retain the above copyright
13*57718be8SEnji Cooper#    notice, this list of conditions and the following disclaimer.
14*57718be8SEnji Cooper# 2. Redistributions in binary form must reproduce the above copyright
15*57718be8SEnji Cooper#    notice, this list of conditions and the following disclaimer in the
16*57718be8SEnji Cooper#    documentation and/or other materials provided with the distribution.
17*57718be8SEnji Cooper#
18*57718be8SEnji Cooper# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19*57718be8SEnji Cooper# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20*57718be8SEnji Cooper# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21*57718be8SEnji Cooper# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22*57718be8SEnji Cooper# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23*57718be8SEnji Cooper# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24*57718be8SEnji Cooper# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25*57718be8SEnji Cooper# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26*57718be8SEnji Cooper# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27*57718be8SEnji Cooper# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28*57718be8SEnji Cooper# POSSIBILITY OF SUCH DAMAGE.
29*57718be8SEnji Cooper#
30*57718be8SEnji Cooper
31*57718be8SEnji Cooperatf_test_case no_command
32*57718be8SEnji Cooperno_command_head() {
33*57718be8SEnji Cooper	atf_set "descr" "Tests that the lack of a command errors out"
34*57718be8SEnji Cooper}
35*57718be8SEnji Cooperno_command_body() {
36*57718be8SEnji Cooper	export h_simple=YES
37*57718be8SEnji Cooper	rc_helper=$(atf_get_srcdir)/h_simple
38*57718be8SEnji Cooper
39*57718be8SEnji Cooper	atf_check -s eq:1 -o empty -e ignore ${rc_helper}
40*57718be8SEnji Cooper}
41*57718be8SEnji Cooper
42*57718be8SEnji Cooperatf_test_case default_start_no_args
43*57718be8SEnji Cooperdefault_start_no_args_head() {
44*57718be8SEnji Cooper	atf_set "descr" "Tests that running the default 'start' without" \
45*57718be8SEnji Cooper	    "arguments does not error out"
46*57718be8SEnji Cooper}
47*57718be8SEnji Cooperdefault_start_no_args_body() {
48*57718be8SEnji Cooper	export h_simple=YES
49*57718be8SEnji Cooper	rc_helper=$(atf_get_srcdir)/h_simple
50*57718be8SEnji Cooper
51*57718be8SEnji Cooper	atf_check -s eq:0 -o ignore -e empty ${rc_helper} start
52*57718be8SEnji Cooper	${rc_helper} forcestop
53*57718be8SEnji Cooper}
54*57718be8SEnji Cooper
55*57718be8SEnji Cooperatf_test_case default_start_with_args
56*57718be8SEnji Cooperdefault_start_with_args_head() {
57*57718be8SEnji Cooper	atf_set "descr" "Tests that running the default 'start' with" \
58*57718be8SEnji Cooper	    "arguments errors out"
59*57718be8SEnji Cooper}
60*57718be8SEnji Cooperdefault_start_with_args_body() {
61*57718be8SEnji Cooper	export h_simple=YES
62*57718be8SEnji Cooper	rc_helper=$(atf_get_srcdir)/h_simple
63*57718be8SEnji Cooper
64*57718be8SEnji Cooper	atf_check -s eq:1 -o ignore -e ignore ${rc_helper} start foo
65*57718be8SEnji Cooper	if ${rc_helper} status >/dev/null; then
66*57718be8SEnji Cooper		${rc_helper} forcestop
67*57718be8SEnji Cooper		atf_fail 'extra argument to start did not error out'
68*57718be8SEnji Cooper	fi
69*57718be8SEnji Cooper}
70*57718be8SEnji Cooper
71*57718be8SEnji Cooperatf_test_case default_stop_no_args
72*57718be8SEnji Cooperdefault_stop_no_args_head() {
73*57718be8SEnji Cooper	atf_set "descr" "Tests that running the default 'stop' without" \
74*57718be8SEnji Cooper	    "arguments does not error out"
75*57718be8SEnji Cooper}
76*57718be8SEnji Cooperdefault_stop_no_args_body() {
77*57718be8SEnji Cooper	export h_simple=YES
78*57718be8SEnji Cooper	rc_helper=$(atf_get_srcdir)/h_simple
79*57718be8SEnji Cooper
80*57718be8SEnji Cooper	${rc_helper} start
81*57718be8SEnji Cooper	atf_check -s eq:0 -o ignore -e empty ${rc_helper} stop
82*57718be8SEnji Cooper}
83*57718be8SEnji Cooper
84*57718be8SEnji Cooperatf_test_case default_stop_with_args
85*57718be8SEnji Cooperdefault_stop_with_args_head() {
86*57718be8SEnji Cooper	atf_set "descr" "Tests that running the default 'stop' with" \
87*57718be8SEnji Cooper	    "arguments errors out"
88*57718be8SEnji Cooper}
89*57718be8SEnji Cooperdefault_stop_with_args_body() {
90*57718be8SEnji Cooper	export h_simple=YES
91*57718be8SEnji Cooper	rc_helper=$(atf_get_srcdir)/h_simple
92*57718be8SEnji Cooper
93*57718be8SEnji Cooper	${rc_helper} start
94*57718be8SEnji Cooper	atf_check -s eq:1 -o ignore -e ignore ${rc_helper} stop foo
95*57718be8SEnji Cooper	if ${rc_helper} status >/dev/null; then
96*57718be8SEnji Cooper		${rc_helper} forcestop
97*57718be8SEnji Cooper	else
98*57718be8SEnji Cooper		atf_fail 'extra argument to stop did not error out'
99*57718be8SEnji Cooper	fi
100*57718be8SEnji Cooper}
101*57718be8SEnji Cooper
102*57718be8SEnji Cooperatf_test_case default_restart_no_args
103*57718be8SEnji Cooperdefault_restart_no_args_head() {
104*57718be8SEnji Cooper	atf_set "descr" "Tests that running the default 'restart' without" \
105*57718be8SEnji Cooper	    "arguments does not error out"
106*57718be8SEnji Cooper}
107*57718be8SEnji Cooperdefault_restart_no_args_body() {
108*57718be8SEnji Cooper	export h_simple=YES
109*57718be8SEnji Cooper	rc_helper=$(atf_get_srcdir)/h_simple
110*57718be8SEnji Cooper
111*57718be8SEnji Cooper	${rc_helper} start
112*57718be8SEnji Cooper	atf_check -s eq:0 -o ignore -e empty ${rc_helper} restart
113*57718be8SEnji Cooper	${rc_helper} forcestop
114*57718be8SEnji Cooper}
115*57718be8SEnji Cooper
116*57718be8SEnji Cooperatf_test_case default_restart_with_args
117*57718be8SEnji Cooperdefault_restart_with_args_head() {
118*57718be8SEnji Cooper	atf_set "descr" "Tests that running the default 'restart' with" \
119*57718be8SEnji Cooper	    "arguments errors out"
120*57718be8SEnji Cooper}
121*57718be8SEnji Cooperdefault_restart_with_args_body() {
122*57718be8SEnji Cooper	export h_simple=YES
123*57718be8SEnji Cooper	rc_helper=$(atf_get_srcdir)/h_simple
124*57718be8SEnji Cooper
125*57718be8SEnji Cooper	${rc_helper} start
126*57718be8SEnji Cooper	atf_check -s eq:1 -o ignore -e ignore ${rc_helper} restart foo
127*57718be8SEnji Cooper	${rc_helper} forcestop
128*57718be8SEnji Cooper}
129*57718be8SEnji Cooper
130*57718be8SEnji Cooperdo_overriden_no_args() {
131*57718be8SEnji Cooper	local command="${1}"; shift
132*57718be8SEnji Cooper
133*57718be8SEnji Cooper	export h_args=YES
134*57718be8SEnji Cooper	rc_helper=$(atf_get_srcdir)/h_args
135*57718be8SEnji Cooper
136*57718be8SEnji Cooper	cat >expout <<EOF
137*57718be8SEnji Cooperpre${command}:.
138*57718be8SEnji Cooper${command}:.
139*57718be8SEnji Cooperpost${command}:.
140*57718be8SEnji CooperEOF
141*57718be8SEnji Cooper	atf_check -s eq:0 -o file:expout -e empty ${rc_helper} ${command}
142*57718be8SEnji Cooper}
143*57718be8SEnji Cooper
144*57718be8SEnji Cooperdo_overriden_with_args() {
145*57718be8SEnji Cooper	local command="${1}"; shift
146*57718be8SEnji Cooper
147*57718be8SEnji Cooper	export h_args=YES
148*57718be8SEnji Cooper	rc_helper=$(atf_get_srcdir)/h_args
149*57718be8SEnji Cooper
150*57718be8SEnji Cooper	cat >expout <<EOF
151*57718be8SEnji Cooperpre${command}:.
152*57718be8SEnji Cooper${command}: >arg1< > arg 2 < >arg3< >*<.
153*57718be8SEnji Cooperpost${command}:.
154*57718be8SEnji CooperEOF
155*57718be8SEnji Cooper	atf_check -s eq:0 -o file:expout -e empty ${rc_helper} ${command} \
156*57718be8SEnji Cooper	    'arg1' ' arg 2 ' 'arg3' '*'
157*57718be8SEnji Cooper}
158*57718be8SEnji Cooper
159*57718be8SEnji Cooperatf_test_case overriden_start_no_args
160*57718be8SEnji Cooperoverriden_start_no_args_head() {
161*57718be8SEnji Cooper	atf_set "descr" "Tests that running a custom 'start' without" \
162*57718be8SEnji Cooper	    "arguments does not pass any parameters to the command"
163*57718be8SEnji Cooper}
164*57718be8SEnji Cooperoverriden_start_no_args_body() {
165*57718be8SEnji Cooper	do_overriden_no_args start
166*57718be8SEnji Cooper}
167*57718be8SEnji Cooper
168*57718be8SEnji Cooperatf_test_case overriden_start_with_args
169*57718be8SEnji Cooperoverriden_start_with_args_head() {
170*57718be8SEnji Cooper	atf_set "descr" "Tests that running a custom 'start' with" \
171*57718be8SEnji Cooper	    "arguments passes those arguments as parameters to the command"
172*57718be8SEnji Cooper}
173*57718be8SEnji Cooperoverriden_start_with_args_body() {
174*57718be8SEnji Cooper	do_overriden_with_args start
175*57718be8SEnji Cooper}
176*57718be8SEnji Cooper
177*57718be8SEnji Cooperatf_test_case overriden_stop_no_args
178*57718be8SEnji Cooperoverriden_stop_no_args_head() {
179*57718be8SEnji Cooper	atf_set "descr" "Tests that running a custom 'stop' without" \
180*57718be8SEnji Cooper	    "arguments does not pass any parameters to the command"
181*57718be8SEnji Cooper}
182*57718be8SEnji Cooperoverriden_stop_no_args_body() {
183*57718be8SEnji Cooper	do_overriden_no_args stop
184*57718be8SEnji Cooper}
185*57718be8SEnji Cooper
186*57718be8SEnji Cooperatf_test_case overriden_stop_with_args
187*57718be8SEnji Cooperoverriden_stop_with_args_head() {
188*57718be8SEnji Cooper	atf_set "descr" "Tests that running a custom 'stop' with" \
189*57718be8SEnji Cooper	    "arguments passes those arguments as parameters to the command"
190*57718be8SEnji Cooper}
191*57718be8SEnji Cooperoverriden_stop_with_args_body() {
192*57718be8SEnji Cooper	do_overriden_with_args stop
193*57718be8SEnji Cooper}
194*57718be8SEnji Cooper
195*57718be8SEnji Cooperatf_test_case overriden_restart_no_args
196*57718be8SEnji Cooperoverriden_restart_no_args_head() {
197*57718be8SEnji Cooper	atf_set "descr" "Tests that running a custom 'restart' without" \
198*57718be8SEnji Cooper	    "arguments does not pass any parameters to the command"
199*57718be8SEnji Cooper}
200*57718be8SEnji Cooperoverriden_restart_no_args_body() {
201*57718be8SEnji Cooper	do_overriden_no_args restart
202*57718be8SEnji Cooper}
203*57718be8SEnji Cooper
204*57718be8SEnji Cooperatf_test_case overriden_restart_with_args
205*57718be8SEnji Cooperoverriden_restart_with_args_head() {
206*57718be8SEnji Cooper	atf_set "descr" "Tests that running a custom 'restart' with" \
207*57718be8SEnji Cooper	    "arguments passes those arguments as parameters to the command"
208*57718be8SEnji Cooper}
209*57718be8SEnji Cooperoverriden_restart_with_args_body() {
210*57718be8SEnji Cooper	do_overriden_with_args restart
211*57718be8SEnji Cooper}
212*57718be8SEnji Cooper
213*57718be8SEnji Cooperatf_test_case overriden_custom_no_args
214*57718be8SEnji Cooperoverriden_custom_no_args_head() {
215*57718be8SEnji Cooper	atf_set "descr" "Tests that running a custom command without" \
216*57718be8SEnji Cooper	    "arguments does not pass any parameters to the command"
217*57718be8SEnji Cooper}
218*57718be8SEnji Cooperoverriden_custom_no_args_body() {
219*57718be8SEnji Cooper	do_overriden_no_args custom
220*57718be8SEnji Cooper}
221*57718be8SEnji Cooper
222*57718be8SEnji Cooperatf_test_case overriden_custom_with_args
223*57718be8SEnji Cooperoverriden_custom_with_args_head() {
224*57718be8SEnji Cooper	atf_set "descr" "Tests that running a custom command with" \
225*57718be8SEnji Cooper	    "arguments passes those arguments as parameters to the command"
226*57718be8SEnji Cooper}
227*57718be8SEnji Cooperoverriden_custom_with_args_body() {
228*57718be8SEnji Cooper	do_overriden_with_args custom
229*57718be8SEnji Cooper}
230*57718be8SEnji Cooper
231*57718be8SEnji Cooperatf_init_test_cases()
232*57718be8SEnji Cooper{
233*57718be8SEnji Cooper	atf_add_test_case no_command
234*57718be8SEnji Cooper
235*57718be8SEnji Cooper	atf_add_test_case default_start_no_args
236*57718be8SEnji Cooper	atf_add_test_case default_start_with_args
237*57718be8SEnji Cooper	atf_add_test_case default_stop_no_args
238*57718be8SEnji Cooper	atf_add_test_case default_stop_with_args
239*57718be8SEnji Cooper	atf_add_test_case default_restart_no_args
240*57718be8SEnji Cooper	atf_add_test_case default_restart_with_args
241*57718be8SEnji Cooper
242*57718be8SEnji Cooper	atf_add_test_case overriden_start_no_args
243*57718be8SEnji Cooper	atf_add_test_case overriden_start_with_args
244*57718be8SEnji Cooper	atf_add_test_case overriden_stop_no_args
245*57718be8SEnji Cooper	atf_add_test_case overriden_stop_with_args
246*57718be8SEnji Cooper	atf_add_test_case overriden_restart_no_args
247*57718be8SEnji Cooper	atf_add_test_case overriden_restart_with_args
248*57718be8SEnji Cooper	atf_add_test_case overriden_custom_no_args
249*57718be8SEnji Cooper	atf_add_test_case overriden_custom_with_args
250*57718be8SEnji Cooper}
251