New CLEAR command, removes all rules from a list
[rxpd] / tests / 30listmanipulation.tests
1 # we randomize ports to minimize collisions,
2 # this needs to be fixed someday (use netstat and check which port is free)
3
4 cp -rf $srcdir/files ./
5 chmod -R +w files
6 port=$((RANDOM+1500))
7 ./rxpd -L $LC_CTYPE -Dvvv -b files -p policy -t $port example &>,${TESTS##*/}.log &
8
9 sleep 1
10
11 function rxpd_client()
12 {
13     nc localhost $port;
14 }
15
16 TESTING "list manipulation tests" rxpd_client
17
18
19 TEST "illegal filename" <<END
20 in: APPEND:dir/../test
21 out: #ERROR: illegal filename
22 END
23
24 TEST "delete testfile" <<END
25 in: DELETE:dir/test
26 END
27
28 TEST "append to list 1" <<END
29 in: APPEND:dir/test
30 in: # test list line 1
31 in: # test list line 2
32 in: !EXIT
33 out: #OK:
34 END
35
36 TEST "append to list 1, check" <<END
37 in: DUMP:dir/test
38 out: # test list line 1
39 out: # test list line 2
40 END
41
42
43 TEST "append to list 2" <<END
44 in: APPEND:dir/test
45 in: # test list line 3
46 in: # test list line 4
47 in: !EXIT
48 out: #OK:
49 END
50
51 TEST "append to list 2, check" <<END
52 in: DUMP:dir/test
53 out: # test list line 1
54 out: # test list line 2
55 out: # test list line 3
56 out: # test list line 4
57 END
58
59
60 TEST "prepend to list 1" <<END
61 in: PREPEND:dir/test
62 in: # test list line -2
63 in: # test list line -1
64 in: !EXIT
65 out: #OK:
66 END
67
68 TEST "prepend to list 1, check" <<END
69 in: DUMP:dir/test
70 out: # test list line -2
71 out: # test list line -1
72 out: # test list line 1
73 out: # test list line 2
74 out: # test list line 3
75 out: # test list line 4
76 END
77
78
79 TEST "prepend to list 2" <<END
80 in: PREPEND:dir/test
81 in: # test list line -4
82 in: # test list line -3
83 in: !EXIT
84 out: #OK:
85 END
86
87 TEST "prepend to list 2, check" <<END
88 in: DUMP:dir/test
89 out: # test list line -4
90 out: # test list line -3
91 out: # test list line -2
92 out: # test list line -1
93 out: # test list line 1
94 out: # test list line 2
95 out: # test list line 3
96 out: # test list line 4
97 END
98
99
100 TEST "remove lines" <<END
101 in: REMOVE:dir/test
102 in: # test list line -2
103 in: # test list line 2
104 in: !EXIT
105 out: #OK:
106 out: #OK:
107 END
108
109 TEST "remove lines, check" <<END
110 in: DUMP:dir/test
111 out: # test list line -4
112 out: # test list line -3
113 out: # test list line -1
114 out: # test list line 1
115 out: # test list line 3
116 out: # test list line 4
117 END
118
119
120 TEST "remove nonexisting line" <<END
121 in: REMOVE:dir/test
122 in: # test list line 2
123 in: !EXIT
124 out: #ERROR: line not found
125 END
126
127 TEST "replace nonexisting line" <<END
128 in: REPLACE:dir/test
129 in: # test list line 2
130 in: # test list line new
131 in: !EXIT
132 out: #ERROR: no rule matching '# test list line 2'
133 END
134
135
136 TEST "replace lines" <<END
137 in: REPLACE:dir/test
138 in: # test list line -3
139 in: # test list line -3
140 in: # test list line -2
141 in: !EXIT
142 out: #OK:
143 END
144
145 TEST "replace lines, check" <<END
146 in: DUMP:dir/test
147 out: # test list line -4
148 out: # test list line -3
149 out: # test list line -2
150 out: # test list line -1
151 out: # test list line 1
152 out: # test list line 3
153 out: # test list line 4
154 END
155
156
157 TEST "save file" <<END
158 in: SAVE:dir/test
159 out: #OK:
160 END
161
162 TEST "clear list" <<END
163 in: CLEAR:dir/test
164 out: #OK:
165 END
166
167 TEST "clear list, check" <<END
168 in: DUMP:dir/test
169 out: #OK:
170 END
171
172 TEST "load file" <<END
173 in: LOAD:dir/test
174 out: #OK:
175 END
176
177 TEST "load file, check" <<END
178 in: DUMP:dir/test
179 out: # test list line -4
180 out: # test list line -3
181 out: # test list line -2
182 out: # test list line -1
183 out: # test list line 1
184 out: # test list line 3
185 out: # test list line 4
186 END
187
188 TEST "filter, add activateable rule" <<END
189 in: APPEND:dir/test
190 in: #something: # test list line 5
191 in: !EXIT
192 out: #OK:
193 END
194
195 TEST "filter, create" <<END
196 in: APPEND:filter
197 in: :DELETE:line .*1
198 in: :ACTIVATE:line 5
199 in: :something:line 4
200 in: !EXIT
201 out: #OK:
202 END
203
204 TEST "filter, run" <<END
205 in: FILTER:dir/test
206 in: filter
207 in: !EXIT
208 out: #OK:
209 END
210
211 TEST "filter, check" <<END
212 in: DUMP:dir/test
213 out: # test list line -4
214 out: # test list line -3
215 out: # test list line -2
216 out: # test list line 3
217 out: #something: # test list line 4
218 out: # test list line 5
219 END
220
221 TEST "delete file" <<END
222 in: DELETE:dir/test
223 out: #OK:
224 END
225
226 TEST "delete file, check" <<END
227 in: DUMP:dir/test
228 out: #OK:
229 END
230
231 TEST "daemon shutdown" <<END
232 in: SHUTDOWN:
233 out: #OK:
234 END