Bump to 1.14.1
[platform/upstream/augeas.git] / lenses / tests / test_aptconf.aug
1 module Test_aptconf =
2
3  (* Test multiline C-style comments *)
4  let comment_multiline = "/* This is a long
5 /* multiline
6 comment
7 */
8 "
9
10   test AptConf.comment get comment_multiline =
11      { "#mcomment"
12         { "1" = "This is a long" }
13         { "2" = "/* multiline" }
14         { "3" = "comment" } }
15
16
17   (* Test empty multiline C-style comments *)
18   let comment_multiline_empty = "/* */\n"
19
20   test AptConf.empty get comment_multiline_empty = { }
21
22
23   (* Test a simple entry *)
24   let simple_entry = "APT::Clean-Installed \"true\";\n"
25
26   test AptConf.entry get simple_entry =
27      { "APT" { "Clean-Installed" = "true" } }
28
29   (* Test simple recursivity *)
30   let simple_recursion = "APT { Clean-Installed \"true\"; };\n"
31
32   test AptConf.entry get simple_recursion =
33      { "APT" { "Clean-Installed" = "true" } }
34
35   (* Test simple recursivity with several entries *)
36   let simple_recursion_multi =
37     "APT {
38          Clean-Installed \"true\";
39          Get::Assume-Yes \"true\";
40      }\n"
41
42   test AptConf.entry get simple_recursion_multi =
43      { "APT"
44         { "Clean-Installed" = "true" }
45         { "Get" { "Assume-Yes" = "true" } } }
46
47   (* Test multiple recursivity *)
48   let multiple_recursion =
49     "APT { Get { Assume-Yes \"true\"; } };\n"
50
51   test AptConf.entry get multiple_recursion =
52      { "APT" { "Get" { "Assume-Yes" = "true" } } }
53
54   (* Test simple list *)
55   let simple_list = "DPKG::options { \"--force-confold\"; }\n"
56
57   test AptConf.entry get simple_list =
58      { "DPKG" { "options" { "@elem" = "--force-confold" } } }
59
60
61   (* Test list elements with spaces *)
62   let list_spaces = "Unattended-Upgrade::Allowed-Origins {
63        \"Ubuntu lucid-security\"; };\n"
64
65   test AptConf.entry get list_spaces =
66      { "Unattended-Upgrade" { "Allowed-Origins"
67        { "@elem" = "Ubuntu lucid-security" } } }
68
69   (* Test recursive list *)
70   let recursive_list =
71     "DPKG {
72          options {
73              \"--force-confold\";
74              \"--nocheck\";
75          } };\n"
76
77   test AptConf.entry get recursive_list =
78      { "DPKG"
79         { "options"
80            { "@elem" = "--force-confold" }
81            { "@elem" = "--nocheck" } } }
82
83   (* Test empty group *)
84   let empty_group =
85    "APT\n{\n};\n"
86
87   test AptConf.entry get empty_group = { "APT" }
88
89   (* Test #include *)
90   let include = "  #include /path/to/file\n"
91
92   test AptConf.include get include =
93      { "#include" = "/path/to/file" }
94
95   (* Test #clear *)
96   let clear = "#clear Dpkg::options Apt::Get::Assume-Yes\n"
97
98   test AptConf.clear get clear =
99      { "#clear"
100         { "name" = "Dpkg::options" }
101         { "name" = "Apt::Get::Assume-Yes" } }
102
103
104   (* Test put simple value *)
105   test AptConf.entry put "APT::Clean-Installed \"true\";\n"
106      after set "/APT/Clean-Installed" "false" =
107      "APT {\nClean-Installed \"false\";\n};\n"
108
109   (* Test rm everything *)
110   test AptConf.entry put "APT { Clean-Installed \"true\"; }\n"
111      after rm "/APT" = ""
112
113   (* Test rm on recursive value *)
114   test AptConf.entry put "APT { Clean-Installed \"true\"; }\n"
115      after rm "/APT/Clean-Installed" = "APT { }\n"
116
117   (* Test put recursive value *)
118   test AptConf.entry put "APT { Clean-Installed \"true\"; }\n"
119      after set "/APT/Clean-Installed" "false" =
120      "APT { Clean-Installed \"false\"; }\n"
121
122   (* Test multiple lens *)
123   let multiple_entries =
124      "APT { Clean-Installed \"true\"; }\n
125       APT::Clean-Installed \"true\";\n"
126
127   test AptConf.lns get multiple_entries =
128      { "APT" { "Clean-Installed" = "true" } }
129      {}
130      { "APT" { "Clean-Installed" = "true" } }
131
132   (* Test with full lens *)
133   test AptConf.lns put "APT { Clean-Installed \"true\"; }\n"
134      after set "/APT/Clean-Installed" "false" =
135      "APT { Clean-Installed \"false\"; }\n"
136
137   (* Test single commented entry *)
138   let commented_entry =
139       "Unattended-Upgrade::Allowed-Origins {
140        \"Ubuntu lucid-security\";
141 //      \"Ubuntu lucid-updates\";
142        };\n"
143
144   test AptConf.lns get commented_entry =
145      { "Unattended-Upgrade" { "Allowed-Origins"
146        { "@elem" = "Ubuntu lucid-security" }
147        { "#comment" = "\"Ubuntu lucid-updates\";" } } }
148
149   (* Test multiple commented entries *)
150   let commented_entries =
151       "// List of packages to not update
152 Unattended-Upgrade::Package-Blacklist {
153 //      \"vim\";
154 //      \"libc6\";
155 //      \"libc6-dev\";
156 //      \"libc6-i686\"
157 };
158 "
159
160   test AptConf.lns get commented_entries =
161      { "#comment" = "List of packages to not update" }
162      { "Unattended-Upgrade" { "Package-Blacklist"
163        { "#comment" = "\"vim\";" }
164        { "#comment" = "\"libc6\";" }
165        { "#comment" = "\"libc6-dev\";" }
166        { "#comment" = "\"libc6-i686\"" }
167      } }
168
169   (* Test complex elem *)
170   let complex_elem = "DPkg::Post-Invoke {\"if [ -d /var/lib/update-notifier ]; then touch /var/lib/update-notifier/dpkg-run-stamp; fi; if [ -e /var/lib/update-notifier/updates-available ]; then echo > /var/lib/update-notifier/updates-available; fi \"};\n"
171
172   test AptConf.lns get complex_elem =
173      { "DPkg" { "Post-Invoke"
174        { "@elem" = "if [ -d /var/lib/update-notifier ]; then touch /var/lib/update-notifier/dpkg-run-stamp; fi; if [ -e /var/lib/update-notifier/updates-available ]; then echo > /var/lib/update-notifier/updates-available; fi " } } }
175
176   (* Accept hash comments *)
177   test AptConf.lns get "# a comment\n" =
178      { "#comment" = "a comment" }
179
180   (* Accept empty hash comments *)
181   test AptConf.lns get "# \n" = { }