ctdb-common: Add config file parsing code
[nivanova/samba-autobuild/.git] / ctdb / tests / cunit / conf_test_001.sh
1 #!/bin/sh
2
3 . "${TEST_SCRIPTS_DIR}/unit.sh"
4
5 conffile="${TEST_VAR_DIR}/config.$$"
6
7 remove_files ()
8 {
9         rm -f "$conffile"
10 }
11
12 test_cleanup remove_files
13
14 ok_null
15 unit_test conf_test 1
16
17 ok <<EOF
18 conf: unknown section [section1]
19 EOF
20 unit_test conf_test 2
21
22 ok <<EOF
23 conf: option "key1" already exists
24 EOF
25 unit_test conf_test 3
26
27 ok <<EOF
28 conf: option "key1" already exists
29 EOF
30 unit_test conf_test 4
31
32 ok_null
33 unit_test conf_test 5
34
35 ok_null
36 unit_test conf_test 6
37
38 ok <<EOF
39 conf: validation for option "key1" failed
40 conf: validation for option "key2" failed
41 conf: validation for option "key3" failed
42 EOF
43 unit_test conf_test 7
44
45 cat > "$conffile" <<EOF
46 [section1]
47 EOF
48
49 required_result 22 <<EOF
50 conf: validation for section [section1] failed
51 [section1]
52         # key1 = default
53 EOF
54 unit_test conf_test 8 "$conffile"
55
56 cat > "$conffile" <<EOF
57 [section1]
58     key1 = unknown
59 EOF
60
61 required_result 22 <<EOF
62 conf: validation for section [section1] failed
63 [section1]
64         # key1 = default
65 EOF
66 unit_test conf_test 8 "$conffile"
67
68 cat > "$conffile" <<EOF
69
70 [section1]
71     key1 = value2  
72     key2 =     20  # comment
73 key3    =    false
74 EOF
75
76 ok <<EOF
77 [section1]
78         key1 = value2
79         key2 = 20
80         key3 = false
81 EOF
82 unit_test conf_test 9 "$conffile"
83
84 cat > "$conffile" <<EOF
85 [section1]
86 key1 = value2  
87 EOF
88
89 ok <<EOF
90 [section1]
91         key1 = value2
92         # key2 = 10
93         key3 = false # temporary
94 EOF
95 unit_test conf_test 9 "$conffile"
96
97 cat > "$conffile" <<EOF
98 [section2]
99     foo = bar
100 EOF
101
102 required_result 22 <<EOF
103 conf: unknown section [section2]
104 [section1]
105         # key1 = value1
106         # key2 = 10
107         key3 = false # temporary
108 EOF
109 unit_test conf_test 10 "$conffile"
110
111 cat > "$conffile" <<EOF
112 [section1]
113     key1 = value2
114     foo = bar
115     key2 = 20
116 EOF
117
118 required_result 2 <<EOF
119 [section1]
120         # key1 = value1
121         # key2 = 10
122         key3 = false # temporary
123 EOF
124 unit_test conf_test 10 "$conffile"