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