1 AT_BANNER([OVSDB -- execution])
3 m4_define([ORDINAL_SCHEMA],
8 "number": {"type": "integer"},
9 "name": {"type": "string"}}}}}]])
11 # OVSDB_CHECK_EXECUTION(TITLE, SCHEMA, TRANSACTIONS, OUTPUT, [KEYWORDS])
13 # Runs "test-ovsdb execute" with the given SCHEMA and each of the
14 # TRANSACTIONS (which should be a quoted list of quoted strings).
16 # Checks that the overall output is OUTPUT, but UUIDs in the output
17 # are replaced by markers of the form <N> where N is a number. The
18 # first unique UUID is replaced by <0>, the next by <1>, and so on.
19 # If a given UUID appears more than once it is always replaced by the
22 # TITLE is provided to AT_SETUP and KEYWORDS to AT_KEYWORDS.
23 m4_define([OVSDB_CHECK_EXECUTION],
25 AT_KEYWORDS([ovsdb execute execution positive $5])
26 OVS_CHECK_LCOV([test-ovsdb execute '$2' m4_foreach([txn], [$3], [ 'txn'])],
28 AT_CHECK([perl $srcdir/uuidfilt.pl stdout], [0], [$4])
31 m4_define([EXECUTION_EXAMPLES], [
32 OVSDB_CHECK_EXECUTION([insert row, query table],
36 "row": {"number": 0, "name": "zero"}}]]],
40 [[[{"uuid":["uuid","<0>"]}]
41 [{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]}]
44 OVSDB_CHECK_EXECUTION([insert rows, query by value],
48 "row": {"number": 0, "name": "zero"}}]]],
51 "row": {"number": 1, "name": "one"}}]]],
54 "where": [["name", "==", "zero"]]}]]],
57 "where": [["name", "==", "one"]]}]]]],
58 [[[{"uuid":["uuid","<0>"]}]
59 [{"uuid":["uuid","<1>"]}]
60 [{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0}]}]
61 [{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
64 OVSDB_CHECK_EXECUTION([insert rows, query by named-uuid],
68 "row": {"number": 0, "name": "zero"},
69 "uuid-name": "first"},
72 "row": {"number": 1, "name": "one"},
73 "uuid-name": "second"},
76 "where": [["_uuid", "==", ["named-uuid", "first"]]]},
79 "where": [["_uuid", "==", ["named-uuid", "second"]]]}]]]],
80 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0}]},{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
83 OVSDB_CHECK_EXECUTION([insert rows, update rows by value],
87 "row": {"number": 0, "name": "zero"},
88 "uuid-name": "first"}]]],
91 "row": {"number": 1, "name": "one"},
92 "uuid-name": "first"}]]],
95 "where": [["name", "==", "zero"]],
96 "row": {"name": "nought"}}]]],
100 "sort": ["number"]}]]]],
101 [[[{"uuid":["uuid","<0>"]}]
102 [{"uuid":["uuid","<1>"]}]
104 [{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"nought","number":0},{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
107 OVSDB_CHECK_EXECUTION([insert rows, delete by named-uuid],
111 "row": {"number": 0, "name": "zero"},
112 "uuid-name": "first"},
115 "row": {"number": 1, "name": "one"},
116 "uuid-name": "second"},
119 "where": [["_uuid", "==", ["named-uuid", "first"]]]},
123 "columns": ["name","number"]}]]]],
124 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"count":1},{"rows":[{"name":"one","number":1}]}]
127 OVSDB_CHECK_EXECUTION([insert rows, delete rows by value],
131 "row": {"number": 0, "name": "zero"},
132 "uuid-name": "first"}]]],
135 "row": {"number": 1, "name": "one"},
136 "uuid-name": "first"}]]],
139 "where": [["name", "==", "zero"]]}]]],
143 [[[{"uuid":["uuid","<0>"]}]
144 [{"uuid":["uuid","<1>"]}]
146 [{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<2>"],"name":"one","number":1}]}]
149 OVSDB_CHECK_EXECUTION([insert rows, delete by (non-matching) value],
153 "row": {"number": 0, "name": "zero"},
154 "uuid-name": "first"}]]],
157 "row": {"number": 1, "name": "one"},
158 "uuid-name": "first"}]]],
161 "where": [["name", "==", "nought"]]}]]],
165 "sort": ["number"]}]]]],
166 [[[{"uuid":["uuid","<0>"]}]
167 [{"uuid":["uuid","<1>"]}]
169 [{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0},{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
172 OVSDB_CHECK_EXECUTION([insert rows, delete all],
176 "row": {"number": 0, "name": "zero"},
177 "uuid-name": "first"},
180 "row": {"number": 1, "name": "one"},
181 "uuid-name": "second"},
188 "columns": ["name","number"]}]]]],
189 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"count":2},{"rows":[]}]
192 OVSDB_CHECK_EXECUTION([insert row, query table, commit],
196 "row": {"number": 0, "name": "zero"}},
201 "durable": false}]]]],
202 [[[{"uuid":["uuid","<0>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]},{}]
205 OVSDB_CHECK_EXECUTION([insert row, query table, commit durably],
209 "row": {"number": 0, "name": "zero"}},
214 "durable": true}]]]],
215 [[[{"uuid":["uuid","<0>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]},{}]
218 OVSDB_CHECK_EXECUTION([equality wait with correct rows],
222 "row": {"number": 0, "name": "zero"}},
225 "row": {"number": 1, "name": "one"}},
230 "columns": ["name", "number"],
232 "rows": [{"name": "zero", "number": 0},
233 {"name": "one", "number": 1}]}]]]],
234 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
237 OVSDB_CHECK_EXECUTION([equality wait with extra row],
241 "row": {"number": 0, "name": "zero"}},
244 "row": {"number": 1, "name": "one"}},
249 "columns": ["name", "number"],
251 "rows": [{"name": "zero", "number": 0},
252 {"name": "one", "number": 1},
253 {"name": "two", "number": 2}]}]]]],
254 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"wait\" timed out","error":"timed out"}]
257 OVSDB_CHECK_EXECUTION([equality wait with missing row],
261 "row": {"number": 0, "name": "zero"}},
264 "row": {"number": 1, "name": "one"}},
269 "columns": ["name", "number"],
271 "rows": [{"name": "one", "number": 1}]}]]]],
272 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"wait\" timed out","error":"timed out"}]
275 OVSDB_CHECK_EXECUTION([inequality wait with correct rows],
279 "row": {"number": 0, "name": "zero"}},
282 "row": {"number": 1, "name": "one"}},
287 "columns": ["name", "number"],
289 "rows": [{"name": "zero", "number": 0},
290 {"name": "one", "number": 1}]}]]]],
291 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"wait\" timed out","error":"timed out"}]
294 OVSDB_CHECK_EXECUTION([inequality wait with extra row],
298 "row": {"number": 0, "name": "zero"}},
301 "row": {"number": 1, "name": "one"}},
306 "columns": ["name", "number"],
308 "rows": [{"name": "zero", "number": 0},
309 {"name": "one", "number": 1},
310 {"name": "two", "number": 2}]}]]]],
311 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
314 OVSDB_CHECK_EXECUTION([inequality wait with missing row],
318 "row": {"number": 0, "name": "zero"}},
321 "row": {"number": 1, "name": "one"}},
326 "columns": ["name", "number"],
328 "rows": [{"name": "one", "number": 1}]}]]]],
329 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]