AT_KEYWORDS([ovsdb log])
AT_CAPTURE_FILE([log])
AT_CHECK(
- [test-ovsdb log-io file 'O_CREAT|O_RDWR'], [0],
+ [test-ovsdb log-io file create], [0],
[file: open successful
], [ignore])
AT_CHECK(
- [test-ovsdb log-io file 'O_RDONLY' read], [0],
+ [test-ovsdb log-io file read-only read], [0],
[file: open successful
file: read: end of log
], [ignore])
AT_KEYWORDS([ovsdb log])
AT_CAPTURE_FILE([file])
AT_CHECK(
- [[test-ovsdb log-io file 'O_CREAT|O_RDWR' 'write:[0]']], [0],
+ [[test-ovsdb log-io file create 'write:{"x":0}']], [0],
[[file: open successful
-file: write:[0] successful
+file: write:{"x":0} successful
]], [ignore])
AT_CHECK(
- [test-ovsdb log-io file 'O_RDONLY' read read], [0],
+ [test-ovsdb log-io file read-only read read], [0],
[[file: open successful
-file: read: [0]
+file: read: {"x":0}
file: read: end of log
]], [ignore])
AT_CHECK([test -f .file.~lock~])
AT_CLEANUP
-AT_SETUP([check that O_EXCL works])
+AT_SETUP([check that create fails if file exists])
AT_KEYWORDS([ovsdb log])
AT_CAPTURE_FILE([file])
AT_CHECK(
- [[test-ovsdb log-io file 'O_CREAT|O_RDWR' 'write:[1]']], [0],
+ [[test-ovsdb log-io file create 'write:{"x":1}']], [0],
[[file: open successful
-file: write:[1] successful
+file: write:{"x":1} successful
]], [ignore])
AT_CHECK(
- [test-ovsdb log-io file 'O_RDONLY' read], [0],
+ [test-ovsdb log-io file read-only read], [0],
[[file: open successful
-file: read: [1]
+file: read: {"x":1}
]], [ignore])
AT_CHECK(
- [test-ovsdb -vlockfile:console:emer log-io file 'O_CREAT|O_RDWR|O_EXCL' read], [1],
- [], [test-ovsdb: I/O error: create: file failed (File exists)
+ [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_KEYWORDS([ovsdb log])
AT_CAPTURE_FILE([file])
AT_CHECK(
- [[test-ovsdb log-io file 'O_CREAT|O_RDWR' 'write:[0]' 'write:[1]' 'write:[2]']], [0],
+ [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
[[file: open successful
-file: write:[0] successful
-file: write:[1] successful
-file: write:[2] successful
+file: write:{"x":0} successful
+file: write:{"x":1} successful
+file: write:{"x":2} successful
]], [ignore])
AT_CHECK(
- [test-ovsdb log-io file 'O_RDONLY' read read read read], [0],
+ [test-ovsdb log-io file read-only read read read read], [0],
[[file: open successful
-file: read: [0]
-file: read: [1]
-file: read: [2]
+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 'O_CREAT|O_RDWR' 'write:[0]' 'write:[1]' 'write:[2]']], [0],
+ [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
[[file: open successful
-file: write:[0] successful
-file: write:[1] successful
-file: write:[2] successful
+file: write:{"x":0} successful
+file: write:{"x":1} successful
+file: write:{"x":2} successful
]], [ignore])
AT_CHECK(
- [[test-ovsdb log-io file 'O_RDWR' read read read 'write:["append"]']], [0],
+ [[test-ovsdb log-io file read/write read read read 'write:{"append":0}']], [0],
[[file: open successful
-file: read: [0]
-file: read: [1]
-file: read: [2]
-file: write:["append"] 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 'O_RDONLY' read read read read read], [0],
+ [test-ovsdb log-io file read-only read read read read read], [0],
[[file: open successful
-file: read: [0]
-file: read: [1]
-file: read: [2]
-file: read: ["append"]
+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_KEYWORDS([ovsdb log])
AT_CAPTURE_FILE([file])
AT_CHECK(
- [[test-ovsdb log-io file 'O_CREAT|O_RDWR' 'write:[0]' 'write:[1]' 'write:[2]']], [0],
+ [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
[[file: open successful
-file: write:[0] successful
-file: write:[1] successful
-file: write:[2] successful
+file: write:{"x":0} successful
+file: write:{"x":1} successful
+file: write:{"x":2} successful
]], [ignore])
AT_CHECK(
- [[test-ovsdb log-io file 'O_RDWR' read 'write:["more data"]']], [0],
+ [[test-ovsdb log-io file read/write read 'write:{"more data":0}']], [0],
[[file: open successful
-file: read: [0]
-file: write:["more data"] successful
+file: read: {"x":0}
+file: write:{"more data":0} successful
]], [ignore])
AT_CHECK(
- [test-ovsdb log-io file 'O_RDONLY' read read read], [0],
+ [test-ovsdb log-io file read-only read read read], [0],
[[file: open successful
-file: read: [0]
-file: read: ["more data"]
+file: read: {"x":0}
+file: read: {"more data":0}
file: read: end of log
]], [ignore])
AT_CHECK([test -f .file.~lock~])
AT_KEYWORDS([ovsdb log])
AT_CAPTURE_FILE([file])
AT_CHECK(
- [[test-ovsdb log-io file 'O_CREAT|O_RDWR' 'write:[0]' 'write:[1]' 'write:[2]']], [0],
+ [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
[[file: open successful
-file: write:[0] successful
-file: write:[1] successful
-file: write:[2] 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 'O_RDONLY' read read read read], [0],
+ [test-ovsdb log-io file read-only read read read read], [0],
[[file: open successful
-file: read: [0]
-file: read: [1]
-file: read: [2]
-file: read failed: syntax error: file: parse error at offset 174 in header line "xxx"
+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_KEYWORDS([ovsdb log])
AT_CAPTURE_FILE([file])
AT_CHECK(
- [[test-ovsdb log-io file 'O_CREAT|O_RDWR' 'write:[0]' 'write:[1]' 'write:[2]']], [0],
+ [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
[[file: open successful
-file: write:[0] successful
-file: write:[1] successful
-file: write:[2] 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 'O_RDWR' read read read read 'write:[3]']], [0],
+ [[test-ovsdb log-io file read/write read read read read 'write:{"x":3}']], [0],
[[file: open successful
-file: read: [0]
-file: read: [1]
-file: read: [2]
-file: read failed: syntax error: file: parse error at offset 174 in header line "xxx"
-file: write:[3] 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 'O_RDONLY' read read read read read], [0],
+ [test-ovsdb log-io file read-only read read read read read], [0],
[[file: open successful
-file: read: [0]
-file: read: [1]
-file: read: [2]
-file: read: [3]
+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_KEYWORDS([ovsdb log])
AT_CAPTURE_FILE([file])
AT_CHECK(
- [[test-ovsdb log-io file 'O_CREAT|O_RDWR' 'write:[0]' 'write:[1]' 'write:[2]']], [0],
+ [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
[[file: open successful
-file: write:[0] successful
-file: write:[1] successful
-file: write:[2] successful
+file: write:{"x":0} successful
+file: write:{"x":1} successful
+file: write:{"x":2} successful
]], [ignore])
-AT_CHECK([[sed 's/\[2]/[3]/' < file > file.tmp]])
+AT_CHECK([[sed 's/{"x":2}/{"x":3}/' < file > file.tmp]])
AT_CHECK([mv file.tmp file])
-AT_CHECK([[grep -c '\[3]' file]], [0], [1
+AT_CHECK([[grep -c '{"x":3}' file]], [0], [1
])
AT_CHECK(
- [[test-ovsdb log-io file 'O_RDWR' read read read 'write:["longer data"]']], [0],
+ [[test-ovsdb log-io file read/write read read read 'write:{"longer data":0}']], [0],
[[file: open successful
-file: read: [0]
-file: read: [1]
-file: read failed: syntax error: file: 4 bytes starting at offset 170 have SHA-1 hash 5c031e5c0d3a9338cc127ebe40bb2748b6a67e78 but should have hash 98f55556e7ffd432381b56a19bd485b3e6446442
-file: write:["longer data"] 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 'O_RDONLY' read read read read], [0],
+ [test-ovsdb log-io file read-only read read read read], [0],
[[file: open successful
-file: read: [0]
-file: read: [1]
-file: read: ["longer data"]
+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_KEYWORDS([ovsdb log])
AT_CAPTURE_FILE([file])
AT_CHECK(
- [[test-ovsdb log-io file 'O_CREAT|O_RDWR' 'write:[0]' 'write:[1]' 'write:[2]']], [0],
+ [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
[[file: open successful
-file: write:[0] successful
-file: write:[1] successful
-file: write:[2] successful
+file: write:{"x":0} successful
+file: write:{"x":1} successful
+file: write:{"x":2} successful
]], [ignore])
-AT_CHECK([[sed 's/\[2]/2/' < file > file.tmp]])
+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 'O_RDWR' read read read 'write:["longer data"]']], [0],
+ [[test-ovsdb log-io file read/write read read read 'write:{"longer data":0}']], [0],
[[file: open successful
-file: read: [0]
-file: read: [1]
-file: read failed: I/O error: file: error reading 4 bytes starting at offset 170 (unexpected end of file)
-file: write:["longer data"] 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 'O_RDONLY' read read read read], [0],
+ [test-ovsdb log-io file read-only read read read read], [0],
[[file: open successful
-file: read: [0]
-file: read: [1]
-file: read: ["longer data"]
+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_KEYWORDS([ovsdb log])
AT_CAPTURE_FILE([file])
AT_CHECK(
- [[test-ovsdb log-io file 'O_CREAT|O_RDWR' 'write:[0]' 'write:[1]' 'write:[2]']], [0],
+ [[test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}']], [0],
[[file: open successful
-file: write:[0] successful
-file: write:[1] successful
-file: write:[2] 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 'O_RDWR' read read read read 'write:["replacement data"]']], [0],
+ [[test-ovsdb log-io file read/write read read read read 'write:{"replacement data":0}']], [0],
[[file: open successful
-file: read: [0]
-file: read: [1]
-file: read: [2]
-file: read failed: syntax error: file: 5 bytes starting at offset 228 are not valid JSON (line 1, column 0, byte 5: syntax error at beginning of input)
-file: write:["replacement data"] 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 'O_RDONLY' read read read read read], [0],
+ [test-ovsdb log-io file read-only read read read read read], [0],
[[file: open successful
-file: read: [0]
-file: read: [1]
-file: read: [2]
-file: read: ["replacement data"]
+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~])