xref: /freebsd/sbin/sysctl/tests/sysctl_test.sh (revision f126d349810fdb512c0b01e101342d430b947488)
1*f126d349SKirk McKusick# Copyright (c) 2022 Yoshihiro Ota <ota@j.email.ne.jp>
2*f126d349SKirk McKusick#
3*f126d349SKirk McKusick# Redistribution and use in source and binary forms, with or without
4*f126d349SKirk McKusick# modification, are permitted provided that the following conditions
5*f126d349SKirk McKusick# are met:
6*f126d349SKirk McKusick# 1. Redistributions of source code must retain the above copyright
7*f126d349SKirk McKusick#    notice, this list of conditions and the following disclaimer.
8*f126d349SKirk McKusick# 2. Redistributions in binary form must reproduce the above copyright
9*f126d349SKirk McKusick#    notice, this list of conditions and the following disclaimer in the
10*f126d349SKirk McKusick#    documentation and/or other materials provided with the distribution.
11*f126d349SKirk McKusick#
12*f126d349SKirk McKusick# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13*f126d349SKirk McKusick# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14*f126d349SKirk McKusick# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15*f126d349SKirk McKusick# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16*f126d349SKirk McKusick# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17*f126d349SKirk McKusick# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18*f126d349SKirk McKusick# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19*f126d349SKirk McKusick# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20*f126d349SKirk McKusick# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21*f126d349SKirk McKusick# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22*f126d349SKirk McKusick# SUCH DAMAGE.
23*f126d349SKirk McKusick
24*f126d349SKirk McKusicksysctl_name="kern.ostype"
25*f126d349SKirk McKusicksysctl_value="FreeBSD"
26*f126d349SKirk McKusicksysctl_type="string"
27*f126d349SKirk McKusicksysctl_description="Operating system type"
28*f126d349SKirk McKusick
29*f126d349SKirk McKusickatf_test_case sysctl_by_name
30*f126d349SKirk McKusicksysctl_by_name_head()
31*f126d349SKirk McKusick{
32*f126d349SKirk McKusick	atf_set "descr" "Verify name without any arguments"
33*f126d349SKirk McKusick}
34*f126d349SKirk McKusicksysctl_by_name_body()
35*f126d349SKirk McKusick{
36*f126d349SKirk McKusick	atf_check -o "inline:${sysctl_name}: ${sysctl_value}\n" sysctl ${sysctl_name}
37*f126d349SKirk McKusick}
38*f126d349SKirk McKusick
39*f126d349SKirk McKusick
40*f126d349SKirk McKusickatf_test_case sysctl_nflag
41*f126d349SKirk McKusicksysctl_nflag()
42*f126d349SKirk McKusick{
43*f126d349SKirk McKusick	atf_set "descr" "Verify -n argument"
44*f126d349SKirk McKusick}
45*f126d349SKirk McKusicksysctl_nflag_body()
46*f126d349SKirk McKusick{
47*f126d349SKirk McKusick	atf_check -o "inline:${sysctl_value}\n" sysctl -n ${sysctl_name}
48*f126d349SKirk McKusick}
49*f126d349SKirk McKusick
50*f126d349SKirk McKusick
51*f126d349SKirk McKusickatf_test_case sysctl_eflag
52*f126d349SKirk McKusicksysctl_eflag()
53*f126d349SKirk McKusick{
54*f126d349SKirk McKusick	atf_set "descr" "Verify -e argument"
55*f126d349SKirk McKusick}
56*f126d349SKirk McKusicksysctl_eflag_body()
57*f126d349SKirk McKusick{
58*f126d349SKirk McKusick	atf_check -o "inline:${sysctl_name}=${sysctl_value}\n" sysctl -e ${sysctl_name}
59*f126d349SKirk McKusick}
60*f126d349SKirk McKusick
61*f126d349SKirk McKusick
62*f126d349SKirk McKusickatf_test_case sysctl_tflag
63*f126d349SKirk McKusicksysctl_tflag()
64*f126d349SKirk McKusick{
65*f126d349SKirk McKusick	atf_set "descr" "Verify -t argument"
66*f126d349SKirk McKusick}
67*f126d349SKirk McKusicksysctl_tflag_body()
68*f126d349SKirk McKusick{
69*f126d349SKirk McKusick	atf_check -o "inline:${sysctl_name}: ${sysctl_type}\n" sysctl -t ${sysctl_name}
70*f126d349SKirk McKusick}
71*f126d349SKirk McKusick
72*f126d349SKirk McKusick
73*f126d349SKirk McKusickatf_test_case sysctl_dflag
74*f126d349SKirk McKusicksysctl_dflag()
75*f126d349SKirk McKusick{
76*f126d349SKirk McKusick	atf_set "descr" "Verify -d argument"
77*f126d349SKirk McKusick}
78*f126d349SKirk McKusicksysctl_dflag_body()
79*f126d349SKirk McKusick{
80*f126d349SKirk McKusick	atf_check -o "inline:${sysctl_name}: ${sysctl_description}\n" sysctl -d ${sysctl_name}
81*f126d349SKirk McKusick}
82*f126d349SKirk McKusick
83*f126d349SKirk McKusick
84*f126d349SKirk McKusickatf_test_case sysctl_tflag_dflag
85*f126d349SKirk McKusicksysctl_tflag_dflag()
86*f126d349SKirk McKusick{
87*f126d349SKirk McKusick	atf_set "descr" "Verify -t -d arguments"
88*f126d349SKirk McKusick}
89*f126d349SKirk McKusicksysctl_tflag_dflag_body()
90*f126d349SKirk McKusick{
91*f126d349SKirk McKusick	atf_check -o "inline:${sysctl_name}: ${sysctl_type}: ${sysctl_description}\n" sysctl -t -d ${sysctl_name}
92*f126d349SKirk McKusick	atf_check -o "inline:${sysctl_name}: ${sysctl_type}: ${sysctl_description}\n" sysctl -d -t ${sysctl_name}
93*f126d349SKirk McKusick}
94*f126d349SKirk McKusick
95*f126d349SKirk McKusick
96*f126d349SKirk McKusickatf_test_case sysctl_nflag_tflag_dflag
97*f126d349SKirk McKusicksysctl_nflag_tflag_dflag()
98*f126d349SKirk McKusick{
99*f126d349SKirk McKusick	atf_set "descr" "Verify -n -t -d arguments"
100*f126d349SKirk McKusick}
101*f126d349SKirk McKusicksysctl_nflag_tflag_dflag_body()
102*f126d349SKirk McKusick{
103*f126d349SKirk McKusick	atf_check -o "inline:${sysctl_type}: ${sysctl_description}\n" sysctl -n -t -d ${sysctl_name}
104*f126d349SKirk McKusick}
105*f126d349SKirk McKusick
106*f126d349SKirk McKusick
107*f126d349SKirk McKusickatf_init_test_cases()
108*f126d349SKirk McKusick{
109*f126d349SKirk McKusick	atf_add_test_case sysctl_by_name
110*f126d349SKirk McKusick	atf_add_test_case sysctl_nflag
111*f126d349SKirk McKusick	atf_add_test_case sysctl_eflag
112*f126d349SKirk McKusick	atf_add_test_case sysctl_tflag
113*f126d349SKirk McKusick	atf_add_test_case sysctl_dflag
114*f126d349SKirk McKusick	atf_add_test_case sysctl_tflag_dflag
115*f126d349SKirk McKusick	atf_add_test_case sysctl_nflag_tflag_dflag
116*f126d349SKirk McKusick}
117