2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-29 05:18:13 +00:00
ovs/tests/ovsdb-log.at
Ben Pfaff 5a0e4aec1a treewide: Convert leading tabs to spaces.
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>
2018-06-11 15:32:00 -07:00

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