]>
Commit | Line | Data |
---|---|---|
41709ccc | 1 | AT_BANNER([OVSDB -- logging]) |
f85f8ebb BP |
2 | |
3 | AT_SETUP([create empty, reread]) | |
41709ccc BP |
4 | AT_KEYWORDS([ovsdb log]) |
5 | AT_CAPTURE_FILE([log]) | |
7c126fbb | 6 | AT_CHECK( |
7446f148 | 7 | [test-ovsdb log-io file create], [0], |
f85f8ebb BP |
8 | [file: open successful |
9 | ], [ignore]) | |
7c126fbb | 10 | AT_CHECK( |
7446f148 | 11 | [test-ovsdb log-io file read-only read], [0], |
f85f8ebb | 12 | [file: open successful |
41709ccc | 13 | file: read: end of log |
f85f8ebb BP |
14 | ], [ignore]) |
15 | AT_CHECK([test -f .file.~lock~]) | |
16 | AT_CLEANUP | |
17 | ||
18 | AT_SETUP([write one, reread]) | |
41709ccc | 19 | AT_KEYWORDS([ovsdb log]) |
f85f8ebb | 20 | AT_CAPTURE_FILE([file]) |
7c126fbb | 21 | AT_CHECK( |
4407aa48 | 22 | [[test-ovsdb log-io file create 'write:{"x":0}']], [0], |
f85f8ebb | 23 | [[file: open successful |
4407aa48 | 24 | file: write:{"x":0} successful |
f85f8ebb | 25 | ]], [ignore]) |
7c126fbb | 26 | AT_CHECK( |
7446f148 | 27 | [test-ovsdb log-io file read-only read read], [0], |
f85f8ebb | 28 | [[file: open successful |
4407aa48 | 29 | file: read: {"x":0} |
41709ccc | 30 | file: read: end of log |
f85f8ebb BP |
31 | ]], [ignore]) |
32 | AT_CHECK([test -f .file.~lock~]) | |
33 | AT_CLEANUP | |
34 | ||
7446f148 | 35 | AT_SETUP([check that create fails if file exists]) |
41709ccc | 36 | AT_KEYWORDS([ovsdb log]) |
f85f8ebb | 37 | AT_CAPTURE_FILE([file]) |
7c126fbb | 38 | AT_CHECK( |
4407aa48 | 39 | [[test-ovsdb log-io file create 'write:{"x":1}']], [0], |
f85f8ebb | 40 | [[file: open successful |
4407aa48 | 41 | file: write:{"x":1} successful |
f85f8ebb | 42 | ]], [ignore]) |
7c126fbb | 43 | AT_CHECK( |
7446f148 | 44 | [test-ovsdb log-io file read-only read], [0], |
f85f8ebb | 45 | [[file: open successful |
4407aa48 | 46 | file: read: {"x":1} |
f85f8ebb | 47 | ]], [ignore]) |
7c126fbb | 48 | AT_CHECK( |
1e0b7e94 | 49 | [test-ovsdb log-io file create-excl read], [1], |
a6be657b | 50 | [], [test-ovsdb: I/O error: file: create failed (File exists) |
f85f8ebb | 51 | ]) |
1e0b7e94 BP |
52 | AT_CHECK( |
53 | [test-ovsdb log-io file create read], [0], | |
54 | [file: open successful | |
55 | file: read: {"x":1} | |
56 | ]) | |
f85f8ebb BP |
57 | AT_CHECK([test -f .file.~lock~]) |
58 | AT_CLEANUP | |
59 | ||
60 | AT_SETUP([write one, reread]) | |
41709ccc | 61 | AT_KEYWORDS([ovsdb log]) |
f85f8ebb | 62 | AT_CAPTURE_FILE([file]) |
7c126fbb | 63 | AT_CHECK( |
4407aa48 | 64 | [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0], |
f85f8ebb | 65 | [[file: open successful |
4407aa48 BP |
66 | file: write:{"x":0} successful |
67 | file: write:{"x":1} successful | |
68 | file: write:{"x":2} successful | |
f85f8ebb | 69 | ]], [ignore]) |
7c126fbb | 70 | AT_CHECK( |
7446f148 | 71 | [test-ovsdb log-io file read-only read read read read], [0], |
f85f8ebb | 72 | [[file: open successful |
4407aa48 BP |
73 | file: read: {"x":0} |
74 | file: read: {"x":1} | |
75 | file: read: {"x":2} | |
41709ccc | 76 | file: read: end of log |
f85f8ebb BP |
77 | ]], [ignore]) |
78 | AT_CHECK([test -f .file.~lock~]) | |
79 | AT_CLEANUP | |
80 | ||
421fc8a1 BP |
81 | AT_SETUP([write one, replace, commit]) |
82 | AT_KEYWORDS([ovsdb log]) | |
83 | AT_CAPTURE_FILE([file]) | |
84 | for option in '' --no-rename-open-files; do | |
85 | rm -f file | |
86 | AT_CHECK( | |
87 | [[test-ovsdb $option log-io file create \ | |
5a0e4aec BP |
88 | 'write:{"x":0}' \ |
89 | 'replace_start' \ | |
90 | 'new-write:{"x":1}' \ | |
91 | 'new-write:{"x":2}' \ | |
92 | 'old-write:{"x":4}' \ | |
93 | 'replace_commit' \ | |
94 | 'read' \ | |
95 | 'write:{"x":3}']], [0], | |
421fc8a1 BP |
96 | [[file: open successful |
97 | file: write:{"x":0} successful | |
98 | file: replace_start successful | |
99 | (temp): write:{"x":1} successful | |
100 | (temp): write:{"x":2} successful | |
101 | file: write:{"x":4} successful | |
102 | file: replace_commit successful | |
103 | file: read: end of log | |
104 | file: write:{"x":3} successful | |
105 | ]]) | |
106 | AT_CHECK( | |
107 | [test-ovsdb log-io file read-only read read read read], [0], | |
108 | [[file: open successful | |
109 | file: read: {"x":1} | |
110 | file: read: {"x":2} | |
111 | file: read: {"x":3} | |
112 | file: read: end of log | |
113 | ]], [ignore]) | |
114 | done | |
115 | AT_CHECK([test -f .file.~lock~]) | |
116 | AT_CLEANUP | |
117 | ||
118 | AT_SETUP([write one, replace, abort]) | |
119 | AT_KEYWORDS([ovsdb log]) | |
120 | AT_CAPTURE_FILE([file]) | |
121 | for option in '' --no-rename-open-files; do | |
122 | rm -f file | |
123 | AT_CHECK( | |
124 | [[test-ovsdb $option log-io file create \ | |
5a0e4aec BP |
125 | 'write:{"x":0}' \ |
126 | 'replace_start' \ | |
127 | 'new-write:{"x":1}' \ | |
128 | 'new-write:{"x":2}' \ | |
129 | 'old-write:{"x":4}' \ | |
130 | 'replace_abort' \ | |
131 | 'read' \ | |
132 | 'write:{"x":3}']], [0], | |
421fc8a1 BP |
133 | [[file: open successful |
134 | file: write:{"x":0} successful | |
135 | file: replace_start successful | |
136 | (temp): write:{"x":1} successful | |
137 | (temp): write:{"x":2} successful | |
138 | file: write:{"x":4} successful | |
139 | file: replace_abort successful | |
140 | file: read: end of log | |
141 | file: write:{"x":3} successful | |
142 | ]]) | |
143 | AT_CHECK( | |
144 | [test-ovsdb log-io file read-only read read read read], [0], | |
145 | [[file: open successful | |
146 | file: read: {"x":0} | |
147 | file: read: {"x":4} | |
148 | file: read: {"x":3} | |
149 | file: read: end of log | |
150 | ]], [ignore]) | |
151 | done | |
152 | AT_CHECK([test -f .file.~lock~]) | |
153 | AT_CLEANUP | |
154 | ||
19b276cb BP |
155 | AT_SETUP([write one, reread - alternative magic]) |
156 | AT_KEYWORDS([ovsdb log]) | |
157 | AT_CAPTURE_FILE([file]) | |
158 | # Sometimes you just need more magic: | |
159 | # http://www.catb.org/jargon/html/magic-story.html | |
160 | AT_CHECK( | |
4407aa48 | 161 | [[test-ovsdb --magic="MORE_MAGIC" log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0], |
19b276cb | 162 | [[file: open successful |
4407aa48 BP |
163 | file: write:{"x":0} successful |
164 | file: write:{"x":1} successful | |
165 | file: write:{"x":2} successful | |
19b276cb BP |
166 | ]], [ignore]) |
167 | AT_CHECK( | |
4407aa48 | 168 | [test-ovsdb --magic="MORE_MAGIC" log-io file read-only read read read read], [0], |
19b276cb | 169 | [[file: open successful |
4407aa48 BP |
170 | file: read: {"x":0} |
171 | file: read: {"x":1} | |
172 | file: read: {"x":2} | |
19b276cb BP |
173 | file: read: end of log |
174 | ]], [ignore]) | |
175 | AT_CHECK( | |
176 | [test-ovsdb log-io file read-only], [1], [], | |
fed27759 | 177 | [test-ovsdb: ovsdb error: file: cannot identify file type |
19b276cb BP |
178 | ]) |
179 | AT_CHECK([test -f .file.~lock~]) | |
180 | AT_CLEANUP | |
181 | ||
f85f8ebb | 182 | AT_SETUP([write one, reread, append]) |
41709ccc | 183 | AT_KEYWORDS([ovsdb log]) |
f85f8ebb | 184 | AT_CAPTURE_FILE([file]) |
7c126fbb | 185 | AT_CHECK( |
4407aa48 | 186 | [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0], |
f85f8ebb | 187 | [[file: open successful |
4407aa48 BP |
188 | file: write:{"x":0} successful |
189 | file: write:{"x":1} successful | |
190 | file: write:{"x":2} successful | |
f85f8ebb | 191 | ]], [ignore]) |
7c126fbb | 192 | AT_CHECK( |
4407aa48 | 193 | [[test-ovsdb log-io file read/write read read read 'write:{"append":0}']], [0], |
f85f8ebb | 194 | [[file: open successful |
4407aa48 BP |
195 | file: read: {"x":0} |
196 | file: read: {"x":1} | |
197 | file: read: {"x":2} | |
198 | file: write:{"append":0} successful | |
f85f8ebb | 199 | ]], [ignore]) |
7c126fbb | 200 | AT_CHECK( |
7446f148 | 201 | [test-ovsdb log-io file read-only read read read read read], [0], |
f85f8ebb | 202 | [[file: open successful |
4407aa48 BP |
203 | file: read: {"x":0} |
204 | file: read: {"x":1} | |
205 | file: read: {"x":2} | |
206 | file: read: {"append":0} | |
41709ccc | 207 | file: read: end of log |
f85f8ebb BP |
208 | ]], [ignore]) |
209 | AT_CHECK([test -f .file.~lock~]) | |
210 | AT_CLEANUP | |
211 | ||
212 | AT_SETUP([write, reread one, overwrite]) | |
41709ccc | 213 | AT_KEYWORDS([ovsdb log]) |
f85f8ebb | 214 | AT_CAPTURE_FILE([file]) |
7c126fbb | 215 | AT_CHECK( |
4407aa48 | 216 | [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0], |
f85f8ebb | 217 | [[file: open successful |
4407aa48 BP |
218 | file: write:{"x":0} successful |
219 | file: write:{"x":1} successful | |
220 | file: write:{"x":2} successful | |
f85f8ebb | 221 | ]], [ignore]) |
7c126fbb | 222 | AT_CHECK( |
4407aa48 | 223 | [[test-ovsdb log-io file read/write read 'write:{"more data":0}']], [0], |
f85f8ebb | 224 | [[file: open successful |
4407aa48 BP |
225 | file: read: {"x":0} |
226 | file: write:{"more data":0} successful | |
f85f8ebb | 227 | ]], [ignore]) |
7c126fbb | 228 | AT_CHECK( |
7446f148 | 229 | [test-ovsdb log-io file read-only read read read], [0], |
f85f8ebb | 230 | [[file: open successful |
4407aa48 BP |
231 | file: read: {"x":0} |
232 | file: read: {"more data":0} | |
41709ccc | 233 | file: read: end of log |
f85f8ebb BP |
234 | ]], [ignore]) |
235 | AT_CHECK([test -f .file.~lock~]) | |
236 | AT_CLEANUP | |
237 | ||
238 | AT_SETUP([write, add corrupted data, read]) | |
41709ccc | 239 | AT_KEYWORDS([ovsdb log]) |
f85f8ebb | 240 | AT_CAPTURE_FILE([file]) |
7c126fbb | 241 | AT_CHECK( |
4407aa48 | 242 | [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0], |
f85f8ebb | 243 | [[file: open successful |
4407aa48 BP |
244 | file: write:{"x":0} successful |
245 | file: write:{"x":1} successful | |
246 | file: write:{"x":2} successful | |
f85f8ebb BP |
247 | ]], [ignore]) |
248 | AT_CHECK([echo 'xxx' >> file]) | |
7c126fbb | 249 | AT_CHECK( |
7446f148 | 250 | [test-ovsdb log-io file read-only read read read read], [0], |
f85f8ebb | 251 | [[file: open successful |
4407aa48 BP |
252 | file: read: {"x":0} |
253 | file: read: {"x":1} | |
254 | file: read: {"x":2} | |
255 | file: read failed: syntax error: file: parse error at offset 186 in header line "xxx" | |
f85f8ebb BP |
256 | ]], [ignore]) |
257 | AT_CHECK([test -f .file.~lock~]) | |
258 | AT_CLEANUP | |
259 | ||
260 | AT_SETUP([write, add corrupted data, read, overwrite]) | |
41709ccc | 261 | AT_KEYWORDS([ovsdb log]) |
f85f8ebb | 262 | AT_CAPTURE_FILE([file]) |
7c126fbb | 263 | AT_CHECK( |
4407aa48 | 264 | [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0], |
f85f8ebb | 265 | [[file: open successful |
4407aa48 BP |
266 | file: write:{"x":0} successful |
267 | file: write:{"x":1} successful | |
268 | file: write:{"x":2} successful | |
f85f8ebb BP |
269 | ]], [ignore]) |
270 | AT_CHECK([echo 'xxx' >> file]) | |
7c126fbb | 271 | AT_CHECK( |
4407aa48 | 272 | [[test-ovsdb log-io file read/write read read read read 'write:{"x":3}']], [0], |
f85f8ebb | 273 | [[file: open successful |
4407aa48 BP |
274 | file: read: {"x":0} |
275 | file: read: {"x":1} | |
276 | file: read: {"x":2} | |
277 | file: read failed: syntax error: file: parse error at offset 186 in header line "xxx" | |
278 | file: write:{"x":3} successful | |
f85f8ebb | 279 | ]], [ignore]) |
7c126fbb | 280 | AT_CHECK( |
7446f148 | 281 | [test-ovsdb log-io file read-only read read read read read], [0], |
f85f8ebb | 282 | [[file: open successful |
4407aa48 BP |
283 | file: read: {"x":0} |
284 | file: read: {"x":1} | |
285 | file: read: {"x":2} | |
286 | file: read: {"x":3} | |
41709ccc | 287 | file: read: end of log |
f85f8ebb BP |
288 | ]], [ignore]) |
289 | AT_CHECK([test -f .file.~lock~]) | |
290 | AT_CLEANUP | |
291 | ||
292 | AT_SETUP([write, corrupt some data, read, overwrite]) | |
41709ccc | 293 | AT_KEYWORDS([ovsdb log]) |
f85f8ebb | 294 | AT_CAPTURE_FILE([file]) |
7c126fbb | 295 | AT_CHECK( |
4407aa48 | 296 | [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0], |
f85f8ebb | 297 | [[file: open successful |
4407aa48 BP |
298 | file: write:{"x":0} successful |
299 | file: write:{"x":1} successful | |
300 | file: write:{"x":2} successful | |
f85f8ebb | 301 | ]], [ignore]) |
4407aa48 | 302 | AT_CHECK([[sed 's/{"x":2}/{"x":3}/' < file > file.tmp]]) |
f85f8ebb | 303 | AT_CHECK([mv file.tmp file]) |
4407aa48 | 304 | AT_CHECK([[grep -c '{"x":3}' file]], [0], [1 |
f85f8ebb | 305 | ]) |
7c126fbb | 306 | AT_CHECK( |
4407aa48 | 307 | [[test-ovsdb log-io file read/write read read read 'write:{"longer data":0}']], [0], |
f85f8ebb | 308 | [[file: open successful |
4407aa48 BP |
309 | file: read: {"x":0} |
310 | file: read: {"x":1} | |
311 | file: read failed: syntax error: file: 8 bytes starting at offset 178 have SHA-1 hash 2683fd63b5b9fd49df4f2aa25bf7db5cbbebbe6f but should have hash 3d8ed30f471ad1b7b4b571cb0c7d5ed3e81350aa | |
312 | file: write:{"longer data":0} successful | |
f85f8ebb | 313 | ]], [ignore]) |
7c126fbb | 314 | AT_CHECK( |
7446f148 | 315 | [test-ovsdb log-io file read-only read read read read], [0], |
f85f8ebb | 316 | [[file: open successful |
4407aa48 BP |
317 | file: read: {"x":0} |
318 | file: read: {"x":1} | |
319 | file: read: {"longer data":0} | |
41709ccc | 320 | file: read: end of log |
f85f8ebb BP |
321 | ]], [ignore]) |
322 | AT_CHECK([test -f .file.~lock~]) | |
323 | AT_CLEANUP | |
324 | ||
325 | AT_SETUP([write, truncate file, read, overwrite]) | |
41709ccc | 326 | AT_KEYWORDS([ovsdb log]) |
f85f8ebb | 327 | AT_CAPTURE_FILE([file]) |
7c126fbb | 328 | AT_CHECK( |
4407aa48 | 329 | [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0], |
f85f8ebb | 330 | [[file: open successful |
4407aa48 BP |
331 | file: write:{"x":0} successful |
332 | file: write:{"x":1} successful | |
333 | file: write:{"x":2} successful | |
f85f8ebb | 334 | ]], [ignore]) |
4407aa48 | 335 | AT_CHECK([[sed 's/{"x":2}/2/' < file > file.tmp]]) |
f85f8ebb BP |
336 | AT_CHECK([mv file.tmp file]) |
337 | AT_CHECK([[grep -c '^2$' file]], [0], [1 | |
338 | ]) | |
7c126fbb | 339 | AT_CHECK( |
4407aa48 | 340 | [[test-ovsdb log-io file read/write read read read 'write:{"longer data":0}']], [0], |
f85f8ebb | 341 | [[file: open successful |
4407aa48 BP |
342 | file: read: {"x":0} |
343 | file: read: {"x":1} | |
344 | file: read failed: I/O error: file: error reading 8 bytes starting at offset 178 (End of file) | |
345 | file: write:{"longer data":0} successful | |
f85f8ebb | 346 | ]], [ignore]) |
7c126fbb | 347 | AT_CHECK( |
7446f148 | 348 | [test-ovsdb log-io file read-only read read read read], [0], |
f85f8ebb | 349 | [[file: open successful |
4407aa48 BP |
350 | file: read: {"x":0} |
351 | file: read: {"x":1} | |
352 | file: read: {"longer data":0} | |
41709ccc | 353 | file: read: end of log |
f85f8ebb BP |
354 | ]], [ignore]) |
355 | AT_CHECK([test -f .file.~lock~]) | |
356 | AT_CLEANUP | |
357 | ||
358 | AT_SETUP([write bad JSON, read, overwrite]) | |
41709ccc | 359 | AT_KEYWORDS([ovsdb log]) |
f85f8ebb | 360 | AT_CAPTURE_FILE([file]) |
7c126fbb | 361 | AT_CHECK( |
4407aa48 | 362 | [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0], |
f85f8ebb | 363 | [[file: open successful |
4407aa48 BP |
364 | file: write:{"x":0} successful |
365 | file: write:{"x":1} successful | |
366 | file: write:{"x":2} successful | |
f85f8ebb BP |
367 | ]], [ignore]) |
368 | AT_CHECK([[printf '%s\n%s\n' 'OVSDB JSON 5 d910b02871075d3156ec8675dfc95b7d5d640aa6' 'null' >> file]]) | |
7c126fbb | 369 | AT_CHECK( |
4407aa48 | 370 | [[test-ovsdb log-io file read/write read read read read 'write:{"replacement data":0}']], [0], |
f85f8ebb | 371 | [[file: open successful |
4407aa48 BP |
372 | file: read: {"x":0} |
373 | file: read: {"x":1} | |
374 | file: read: {"x":2} | |
375 | file: read failed: syntax error: file: 5 bytes starting at offset 240 are not valid JSON (line 0, column 4, byte 4: syntax error at beginning of input) | |
376 | file: write:{"replacement data":0} successful | |
f85f8ebb | 377 | ]], [ignore]) |
7c126fbb | 378 | AT_CHECK( |
7446f148 | 379 | [test-ovsdb log-io file read-only read read read read read], [0], |
f85f8ebb | 380 | [[file: open successful |
4407aa48 BP |
381 | file: read: {"x":0} |
382 | file: read: {"x":1} | |
383 | file: read: {"x":2} | |
384 | file: read: {"replacement data":0} | |
41709ccc | 385 | file: read: end of log |
f85f8ebb BP |
386 | ]], [ignore]) |
387 | AT_CHECK([test -f .file.~lock~]) | |
388 | AT_CLEANUP |