ctdb-tests: Add tests for empty values in config file
[samba.git] / ctdb / tests / cunit / conf_test_001.sh
blobbad1c1d2c782fcc5057f6a112282e683ca11f7ba
1 #!/bin/sh
3 . "${TEST_SCRIPTS_DIR}/unit.sh"
5 conffile="${TEST_VAR_DIR}/config.$$"
7 remove_files ()
9 rm -f "$conffile"
12 test_cleanup remove_files
14 ok_null
15 unit_test conf_test 1
17 ok <<EOF
18 conf: unknown section [section1]
19 EOF
20 unit_test conf_test 2
22 ok <<EOF
23 conf: option "key1" already exists
24 EOF
25 unit_test conf_test 3
27 ok <<EOF
28 conf: option "key1" already exists
29 EOF
30 unit_test conf_test 4
32 ok_null
33 unit_test conf_test 5
35 ok <<EOF
36 [section1]
37 key1 = foobar # temporary
38 key2 = 20 # temporary
39 key3 = false # temporary
40 EOF
41 unit_test conf_test 6
43 ok <<EOF
44 conf: validation for option "key1" failed
45 conf: validation for option "key2" failed
46 conf: validation for option "key3" failed
47 EOF
48 unit_test conf_test 7
50 cat > "$conffile" <<EOF
51 [section1]
52 EOF
54 required_error EINVAL <<EOF
55 conf: validation for section [section1] failed
56 [section1]
57 # key1 = default
58 EOF
59 unit_test conf_test 8 "$conffile"
61 cat > "$conffile" <<EOF
62 [section1]
63 key1 = unknown
64 EOF
66 required_error EINVAL <<EOF
67 conf: validation for section [section1] failed
68 [section1]
69 # key1 = default
70 EOF
71 unit_test conf_test 8 "$conffile"
73 cat > "$conffile" <<EOF
74 [section1]
75 key1 =
76 EOF
78 required_error EINVAL <<EOF
79 conf: empty value [section1] -> "key1"
80 [section1]
81 # key1 = value1
82 # key2 = 10
83 key3 = false # temporary
84 EOF
85 unit_test conf_test 9 "$conffile"
87 cat > "$conffile" <<EOF
88 [section1]
89 key3 =
90 EOF
92 required_error EINVAL <<EOF
93 conf: empty value [section1] -> "key3"
94 [section1]
95 # key1 = value1
96 # key2 = 10
97 key3 = false # temporary
98 EOF
99 unit_test conf_test 9 "$conffile"
101 cat > "$conffile" <<EOF
103 [section1]
104 key1 = value2
105 key2 = 20 # comment
106 key3 = false
109 ok <<EOF
110 [section1]
111 key1 = value2
112 key2 = 20
113 # key3 = true
115 unit_test conf_test 9 "$conffile"
117 cat > "$conffile" <<EOF
118 [section1]
119 key1 = value2
122 ok <<EOF
123 [section1]
124 key1 = value2
125 # key2 = 10
126 # key3 = true
128 unit_test conf_test 9 "$conffile"
130 cat > "$conffile" <<EOF
131 [section2]
132 foo = bar
135 required_error EINVAL <<EOF
136 conf: unknown section [section2]
137 conf: unknown section for option "foo"
138 [section1]
139 # key1 = value1
140 # key2 = 10
141 key3 = false # temporary
143 unit_test conf_test 10 "$conffile"
145 cat > "$conffile" <<EOF
146 [section1]
147 key1 = value2
148 foo = bar
149 key2 = 20
152 required_error EINVAL <<EOF
153 conf: unknown option [section1] -> "foo"
154 [section1]
155 # key1 = value1
156 # key2 = 10
157 key3 = false # temporary
159 unit_test conf_test 10 "$conffile"
161 cat > "$conffile" <<EOF
162 [section1]
163 key1 = value2
164 key2 = 20
165 key3 = false
168 touch "${conffile}.reload"
170 ok <<EOF
171 [section1]
172 # key1 = value1
173 # key2 = 10
174 # key3 = true
176 unit_test conf_test 11 "$conffile"
178 cat > "$conffile" <<EOF
179 [section1]
180 key1 = value2
181 key2 = 20
182 key3 = false
185 cat > "${conffile}.reload" <<EOF
186 [section1]
187 key1 = value3
190 ok <<EOF
191 [section1]
192 key1 = value3
193 # key2 = 10
194 # key3 = true
196 unit_test conf_test 11 "$conffile"