mirror of
https://github.com/openvswitch/ovs
synced 2025-08-29 05:18:13 +00:00
It's always been OVS coding style to use spaces rather than tabs for indentation, but some tabs have snuck in over time. This commit converts them to spaces. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Justin Pettit <jpettit@ovn.org>
389 lines
11 KiB
Plaintext
389 lines
11 KiB
Plaintext
AT_BANNER([OVSDB -- logging])
|
|
|
|
AT_SETUP([create empty, reread])
|
|
AT_KEYWORDS([ovsdb log])
|
|
AT_CAPTURE_FILE([log])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file create], [0],
|
|
[file: open successful
|
|
], [ignore])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file read-only read], [0],
|
|
[file: open successful
|
|
file: read: end of log
|
|
], [ignore])
|
|
AT_CHECK([test -f .file.~lock~])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([write one, reread])
|
|
AT_KEYWORDS([ovsdb log])
|
|
AT_CAPTURE_FILE([file])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file create 'write:{"x":0}']], [0],
|
|
[[file: open successful
|
|
file: write:{"x":0} successful
|
|
]], [ignore])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file read-only read read], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: end of log
|
|
]], [ignore])
|
|
AT_CHECK([test -f .file.~lock~])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([check that create fails if file exists])
|
|
AT_KEYWORDS([ovsdb log])
|
|
AT_CAPTURE_FILE([file])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file create 'write:{"x":1}']], [0],
|
|
[[file: open successful
|
|
file: write:{"x":1} successful
|
|
]], [ignore])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file read-only read], [0],
|
|
[[file: open successful
|
|
file: read: {"x":1}
|
|
]], [ignore])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file create-excl read], [1],
|
|
[], [test-ovsdb: I/O error: file: create failed (File exists)
|
|
])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file create read], [0],
|
|
[file: open successful
|
|
file: read: {"x":1}
|
|
])
|
|
AT_CHECK([test -f .file.~lock~])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([write one, reread])
|
|
AT_KEYWORDS([ovsdb log])
|
|
AT_CAPTURE_FILE([file])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
|
|
[[file: open successful
|
|
file: write:{"x":0} successful
|
|
file: write:{"x":1} successful
|
|
file: write:{"x":2} successful
|
|
]], [ignore])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file read-only read read read read], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"x":1}
|
|
file: read: {"x":2}
|
|
file: read: end of log
|
|
]], [ignore])
|
|
AT_CHECK([test -f .file.~lock~])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([write one, replace, commit])
|
|
AT_KEYWORDS([ovsdb log])
|
|
AT_CAPTURE_FILE([file])
|
|
for option in '' --no-rename-open-files; do
|
|
rm -f file
|
|
AT_CHECK(
|
|
[[test-ovsdb $option log-io file create \
|
|
'write:{"x":0}' \
|
|
'replace_start' \
|
|
'new-write:{"x":1}' \
|
|
'new-write:{"x":2}' \
|
|
'old-write:{"x":4}' \
|
|
'replace_commit' \
|
|
'read' \
|
|
'write:{"x":3}']], [0],
|
|
[[file: open successful
|
|
file: write:{"x":0} successful
|
|
file: replace_start successful
|
|
(temp): write:{"x":1} successful
|
|
(temp): write:{"x":2} successful
|
|
file: write:{"x":4} successful
|
|
file: replace_commit successful
|
|
file: read: end of log
|
|
file: write:{"x":3} successful
|
|
]])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file read-only read read read read], [0],
|
|
[[file: open successful
|
|
file: read: {"x":1}
|
|
file: read: {"x":2}
|
|
file: read: {"x":3}
|
|
file: read: end of log
|
|
]], [ignore])
|
|
done
|
|
AT_CHECK([test -f .file.~lock~])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([write one, replace, abort])
|
|
AT_KEYWORDS([ovsdb log])
|
|
AT_CAPTURE_FILE([file])
|
|
for option in '' --no-rename-open-files; do
|
|
rm -f file
|
|
AT_CHECK(
|
|
[[test-ovsdb $option log-io file create \
|
|
'write:{"x":0}' \
|
|
'replace_start' \
|
|
'new-write:{"x":1}' \
|
|
'new-write:{"x":2}' \
|
|
'old-write:{"x":4}' \
|
|
'replace_abort' \
|
|
'read' \
|
|
'write:{"x":3}']], [0],
|
|
[[file: open successful
|
|
file: write:{"x":0} successful
|
|
file: replace_start successful
|
|
(temp): write:{"x":1} successful
|
|
(temp): write:{"x":2} successful
|
|
file: write:{"x":4} successful
|
|
file: replace_abort successful
|
|
file: read: end of log
|
|
file: write:{"x":3} successful
|
|
]])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file read-only read read read read], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"x":4}
|
|
file: read: {"x":3}
|
|
file: read: end of log
|
|
]], [ignore])
|
|
done
|
|
AT_CHECK([test -f .file.~lock~])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([write one, reread - alternative magic])
|
|
AT_KEYWORDS([ovsdb log])
|
|
AT_CAPTURE_FILE([file])
|
|
# Sometimes you just need more magic:
|
|
# http://www.catb.org/jargon/html/magic-story.html
|
|
AT_CHECK(
|
|
[[test-ovsdb --magic="MORE_MAGIC" log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
|
|
[[file: open successful
|
|
file: write:{"x":0} successful
|
|
file: write:{"x":1} successful
|
|
file: write:{"x":2} successful
|
|
]], [ignore])
|
|
AT_CHECK(
|
|
[test-ovsdb --magic="MORE_MAGIC" log-io file read-only read read read read], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"x":1}
|
|
file: read: {"x":2}
|
|
file: read: end of log
|
|
]], [ignore])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file read-only], [1], [],
|
|
[test-ovsdb: ovsdb error: file: cannot identify file type
|
|
])
|
|
AT_CHECK([test -f .file.~lock~])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([write one, reread, append])
|
|
AT_KEYWORDS([ovsdb log])
|
|
AT_CAPTURE_FILE([file])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
|
|
[[file: open successful
|
|
file: write:{"x":0} successful
|
|
file: write:{"x":1} successful
|
|
file: write:{"x":2} successful
|
|
]], [ignore])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file read/write read read read 'write:{"append":0}']], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"x":1}
|
|
file: read: {"x":2}
|
|
file: write:{"append":0} successful
|
|
]], [ignore])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file read-only read read read read read], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"x":1}
|
|
file: read: {"x":2}
|
|
file: read: {"append":0}
|
|
file: read: end of log
|
|
]], [ignore])
|
|
AT_CHECK([test -f .file.~lock~])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([write, reread one, overwrite])
|
|
AT_KEYWORDS([ovsdb log])
|
|
AT_CAPTURE_FILE([file])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
|
|
[[file: open successful
|
|
file: write:{"x":0} successful
|
|
file: write:{"x":1} successful
|
|
file: write:{"x":2} successful
|
|
]], [ignore])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file read/write read 'write:{"more data":0}']], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: write:{"more data":0} successful
|
|
]], [ignore])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file read-only read read read], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"more data":0}
|
|
file: read: end of log
|
|
]], [ignore])
|
|
AT_CHECK([test -f .file.~lock~])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([write, add corrupted data, read])
|
|
AT_KEYWORDS([ovsdb log])
|
|
AT_CAPTURE_FILE([file])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
|
|
[[file: open successful
|
|
file: write:{"x":0} successful
|
|
file: write:{"x":1} successful
|
|
file: write:{"x":2} successful
|
|
]], [ignore])
|
|
AT_CHECK([echo 'xxx' >> file])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file read-only read read read read], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"x":1}
|
|
file: read: {"x":2}
|
|
file: read failed: syntax error: file: parse error at offset 186 in header line "xxx"
|
|
]], [ignore])
|
|
AT_CHECK([test -f .file.~lock~])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([write, add corrupted data, read, overwrite])
|
|
AT_KEYWORDS([ovsdb log])
|
|
AT_CAPTURE_FILE([file])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
|
|
[[file: open successful
|
|
file: write:{"x":0} successful
|
|
file: write:{"x":1} successful
|
|
file: write:{"x":2} successful
|
|
]], [ignore])
|
|
AT_CHECK([echo 'xxx' >> file])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file read/write read read read read 'write:{"x":3}']], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"x":1}
|
|
file: read: {"x":2}
|
|
file: read failed: syntax error: file: parse error at offset 186 in header line "xxx"
|
|
file: write:{"x":3} successful
|
|
]], [ignore])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file read-only read read read read read], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"x":1}
|
|
file: read: {"x":2}
|
|
file: read: {"x":3}
|
|
file: read: end of log
|
|
]], [ignore])
|
|
AT_CHECK([test -f .file.~lock~])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([write, corrupt some data, read, overwrite])
|
|
AT_KEYWORDS([ovsdb log])
|
|
AT_CAPTURE_FILE([file])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
|
|
[[file: open successful
|
|
file: write:{"x":0} successful
|
|
file: write:{"x":1} successful
|
|
file: write:{"x":2} successful
|
|
]], [ignore])
|
|
AT_CHECK([[sed 's/{"x":2}/{"x":3}/' < file > file.tmp]])
|
|
AT_CHECK([mv file.tmp file])
|
|
AT_CHECK([[grep -c '{"x":3}' file]], [0], [1
|
|
])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file read/write read read read 'write:{"longer data":0}']], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"x":1}
|
|
file: read failed: syntax error: file: 8 bytes starting at offset 178 have SHA-1 hash 2683fd63b5b9fd49df4f2aa25bf7db5cbbebbe6f but should have hash 3d8ed30f471ad1b7b4b571cb0c7d5ed3e81350aa
|
|
file: write:{"longer data":0} successful
|
|
]], [ignore])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file read-only read read read read], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"x":1}
|
|
file: read: {"longer data":0}
|
|
file: read: end of log
|
|
]], [ignore])
|
|
AT_CHECK([test -f .file.~lock~])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([write, truncate file, read, overwrite])
|
|
AT_KEYWORDS([ovsdb log])
|
|
AT_CAPTURE_FILE([file])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
|
|
[[file: open successful
|
|
file: write:{"x":0} successful
|
|
file: write:{"x":1} successful
|
|
file: write:{"x":2} successful
|
|
]], [ignore])
|
|
AT_CHECK([[sed 's/{"x":2}/2/' < file > file.tmp]])
|
|
AT_CHECK([mv file.tmp file])
|
|
AT_CHECK([[grep -c '^2$' file]], [0], [1
|
|
])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file read/write read read read 'write:{"longer data":0}']], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"x":1}
|
|
file: read failed: I/O error: file: error reading 8 bytes starting at offset 178 (End of file)
|
|
file: write:{"longer data":0} successful
|
|
]], [ignore])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file read-only read read read read], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"x":1}
|
|
file: read: {"longer data":0}
|
|
file: read: end of log
|
|
]], [ignore])
|
|
AT_CHECK([test -f .file.~lock~])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([write bad JSON, read, overwrite])
|
|
AT_KEYWORDS([ovsdb log])
|
|
AT_CAPTURE_FILE([file])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
|
|
[[file: open successful
|
|
file: write:{"x":0} successful
|
|
file: write:{"x":1} successful
|
|
file: write:{"x":2} successful
|
|
]], [ignore])
|
|
AT_CHECK([[printf '%s\n%s\n' 'OVSDB JSON 5 d910b02871075d3156ec8675dfc95b7d5d640aa6' 'null' >> file]])
|
|
AT_CHECK(
|
|
[[test-ovsdb log-io file read/write read read read read 'write:{"replacement data":0}']], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"x":1}
|
|
file: read: {"x":2}
|
|
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)
|
|
file: write:{"replacement data":0} successful
|
|
]], [ignore])
|
|
AT_CHECK(
|
|
[test-ovsdb log-io file read-only read read read read read], [0],
|
|
[[file: open successful
|
|
file: read: {"x":0}
|
|
file: read: {"x":1}
|
|
file: read: {"x":2}
|
|
file: read: {"replacement data":0}
|
|
file: read: end of log
|
|
]], [ignore])
|
|
AT_CHECK([test -f .file.~lock~])
|
|
AT_CLEANUP
|