Bump to 1.14.1
[platform/upstream/augeas.git] / lenses / tests / test_sysconfig.aug
1 (* Test for sysconfig lens *)
2 module Test_sysconfig =
3
4   let lns = Sysconfig.lns
5
6   let eth_static = "# Intel Corporation PRO/100 VE Network Connection
7 DEVICE=eth0
8 BOOTPROTO=static
9 BROADCAST=172.31.0.255
10 HWADDR=ab:cd:ef:12:34:56
11 export IPADDR=172.31.0.31 # this is our IP
12 #DHCP_HOSTNAME=host.example.com
13 NETMASK=255.255.255.0
14 NETWORK=172.31.0.0
15 unset ONBOOT    #   We do not want this var
16 "
17   let empty_val = "EMPTY=\nDEVICE=eth0\n"
18
19   let key_brack = "SOME_KEY[1]=\nDEVICE=eth0\n"
20
21   test lns get eth_static =
22     { "#comment" = "Intel Corporation PRO/100 VE Network Connection" }
23     { "DEVICE" = "eth0" }
24     { "BOOTPROTO" = "static" }
25     { "BROADCAST" = "172.31.0.255" }
26     { "HWADDR" = "ab:cd:ef:12:34:56" }
27     { "IPADDR" = "172.31.0.31"
28         { "export" }
29         { "#comment" = "this is our IP" } }
30     { "#comment" = "DHCP_HOSTNAME=host.example.com" }
31     { "NETMASK" = "255.255.255.0" }
32     { "NETWORK" = "172.31.0.0" }
33     { "@unset"
34       { "1" = "ONBOOT" }
35       { "#comment" = "We do not want this var" } }
36
37   test lns put eth_static after
38       set "BOOTPROTO" "dhcp" ;
39       rm "IPADDR" ;
40       rm "BROADCAST" ;
41       rm "NETMASK" ;
42       rm "NETWORK"
43   = "# Intel Corporation PRO/100 VE Network Connection
44 DEVICE=eth0
45 BOOTPROTO=dhcp
46 HWADDR=ab:cd:ef:12:34:56
47 #DHCP_HOSTNAME=host.example.com
48 unset ONBOOT    #   We do not want this var
49 "
50   test lns get empty_val =
51     { "EMPTY" = "" } { "DEVICE" = "eth0" }
52
53   test lns get key_brack =
54     { "SOME_KEY[1]" = "" } { "DEVICE" = "eth0" }
55
56   test lns get "smartd_opts=\"-q never\"\n" =
57     { "smartd_opts" = "-q never" }
58
59   test lns get "var=val  \n" = { "var" = "val" }
60
61   test lns get ". /etc/java/java.conf\n" =
62     { ".source" = "/etc/java/java.conf" }
63
64   (* Quoted strings and other oddities *)
65   test lns get "var=\"foo 'bar'\"\n" =
66     { "var" = "foo 'bar'" }
67
68   test lns get "var=\"eth0\"\n" =
69     { "var" = "eth0" }
70
71   test lns get "var='eth0'\n" =
72     { "var" = "eth0" }
73
74   test lns get "var='Some \"funny\" value'\n" =
75     { "var" = "Some \"funny\" value" }
76
77   test lns get "var=\"\\\"\"\n" =
78     { "var" = "\\\"" }
79
80   test lns get "var=\\\"\n" =
81     { "var" = "\\\"" }
82
83   test lns get "var=ab#c\n" =
84     { "var" = "ab#c" }
85
86   test lns get "var='ab#c'\n" =
87     { "var" = "ab#c" }
88
89   test lns get "var=\"ab#c\"\n" =
90     { "var" = "ab#c" }
91
92   test lns get "var=\"ab#c\"\n" =
93     { "var" = "ab#c" }
94
95   (* We don't handle backticks *)
96   test lns get
97       "var=`grep nameserver /etc/resolv.conf | head -1`\n" = *
98
99   test lns get "var=ab #c\n" =
100     { "var" = "ab"
101         { "#comment" = "c" } }
102
103   test lns put "var=ab #c\n"
104     after rm "/var/#comment" = "var=ab\n"
105
106   test lns put "var=ab\n"
107     after set "/var/#comment" "this is a var" =
108        "var=ab # this is a var\n"
109
110   (* Test semicolons *)
111   test lns get "VAR1=\"this;is;a;test\"\nVAR2=this;\n" =
112   { "VAR1" = "this;is;a;test" }
113   { "VAR2" = "this" }
114
115   (* BZ 761246 *)
116   test lns get "DEVICE=\"eth0\";\n" =
117     { "DEVICE" = "eth0" }
118
119   test lns put "DEVICE=\"eth0\";\n" after
120     set "/DEVICE" "em1" = "DEVICE=\"em1\";\n"
121
122   test lns get "DEVICE=\"eth0\"; # remark\n" =
123     { "DEVICE" = "eth0" }
124     { "#comment" = "remark" }
125
126   (* Bug 109: allow a bare export *)
127   test lns get "export FOO\n" =
128   { "@export"
129     { "1" = "FOO" } }
130
131   (* Check we put quotes in when changes require them *)
132   test lns put "var=\"v\"\n" after rm "/foo" =
133     "var=\"v\"\n"
134
135   test lns put "var=v\n" after set "/var" "v w"=
136     "var=\"v w\"\n"
137
138   test lns put "var='v'\n" after set "/var" "v w"=
139     "var='v w'\n"
140
141   test lns put "var=v\n" after set "/var" "v'w"=
142     "var=\"v'w\"\n"
143
144   test lns put "var=v\n" after set "/var" "v\"w"=
145     "var='v\"w'\n"
146
147   (* RHBZ#1043636: empty comment lines after comments *)
148   test lns get "#MOUNTD_NFS_V3\n#\n" =
149     { "#comment" = "MOUNTD_NFS_V3" }
150
151   (* Handle leading whitespace at the beginning of a line correctly *)
152   test lns get " var=value\n" = { "var" = "value" }
153
154   test lns put " var=value\n" after set "/var" "val2" = " var=val2\n"
155
156   test lns get "\t \tvar=value\n" = { "var" = "value" }
157
158   test lns get "  export var=value\n" = { "var" = "value" { "export" } }
159
160 (* Local Variables: *)
161 (* mode: caml       *)
162 (* End:             *)