1 AT_BANNER([OVSDB -- execution])
3 m4_define([ORDINAL_SCHEMA],
8 "number": {"type": "integer"},
9 "name": {"type": "string"}}}}}']])
11 # This is like OVSDB_CHECK_POSITIVE, except that UUIDs in the output
12 # are replaced by markers of the form <N> where N is a number. The
13 # first unique UUID is replaced by <0>, the next by <1>, and so on.
14 # If a given UUID appears more than once it is always replaced by the
16 m4_define([OVSDB_CHECK_EXECUTION],
18 AT_KEYWORDS([ovsdb execute execution positive $4])
19 OVS_CHECK_LCOV([test-ovsdb execute $2], [0], [stdout], [])
20 AT_CHECK([perl $srcdir/uuidfilt.pl stdout], [0], [$3])
23 OVSDB_CHECK_EXECUTION([insert row, query table],
27 "row": {"number": 0, "name": "zero"}}]' \
31 [[[{"uuid":["uuid","<0>"]}]
32 [{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]}]
35 OVSDB_CHECK_EXECUTION([insert rows, query by value],
39 "row": {"number": 0, "name": "zero"}}]' \
42 "row": {"number": 1, "name": "one"}}]' \
45 "where": [["name", "==", "zero"]]}]'\
48 "where": [["name", "==", "one"]]}]']],
49 [[[{"uuid":["uuid","<0>"]}]
50 [{"uuid":["uuid","<1>"]}]
51 [{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0}]}]
52 [{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
55 OVSDB_CHECK_EXECUTION([insert rows, query by named-uuid],
59 "row": {"number": 0, "name": "zero"},
60 "uuid-name": "first"},
63 "row": {"number": 1, "name": "one"},
64 "uuid-name": "second"},
67 "where": [["_uuid", "==", ["named-uuid", "first"]]]},
70 "where": [["_uuid", "==", ["named-uuid", "second"]]]}]']],
71 [[[{"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}]}]
74 OVSDB_CHECK_EXECUTION([insert rows, update rows by value],
78 "row": {"number": 0, "name": "zero"},
79 "uuid-name": "first"}]' \
82 "row": {"number": 1, "name": "one"},
83 "uuid-name": "first"}]' \
86 "where": [["name", "==", "zero"]],
87 "row": {"name": "nought"}}]' \
91 "sort": ["number"]}]']],
92 [[[{"uuid":["uuid","<0>"]}]
93 [{"uuid":["uuid","<1>"]}]
95 [{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"nought","number":0},{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
98 OVSDB_CHECK_EXECUTION([insert rows, delete by named-uuid],
102 "row": {"number": 0, "name": "zero"},
103 "uuid-name": "first"},
106 "row": {"number": 1, "name": "one"},
107 "uuid-name": "second"},
110 "where": [["_uuid", "==", ["named-uuid", "first"]]]},
114 "columns": ["name","number"]}]']],
115 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"count":1},{"rows":[{"name":"one","number":1}]}]
118 OVSDB_CHECK_EXECUTION([insert rows, delete rows by value],
122 "row": {"number": 0, "name": "zero"},
123 "uuid-name": "first"}]' \
126 "row": {"number": 1, "name": "one"},
127 "uuid-name": "first"}]' \
130 "where": [["name", "==", "zero"]]}]' \
134 [[[{"uuid":["uuid","<0>"]}]
135 [{"uuid":["uuid","<1>"]}]
137 [{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<2>"],"name":"one","number":1}]}]
140 OVSDB_CHECK_EXECUTION([insert rows, delete by (non-matching) value],
144 "row": {"number": 0, "name": "zero"},
145 "uuid-name": "first"}]' \
148 "row": {"number": 1, "name": "one"},
149 "uuid-name": "first"}]' \
152 "where": [["name", "==", "nought"]]}]' \
156 "sort": ["number"]}]']],
157 [[[{"uuid":["uuid","<0>"]}]
158 [{"uuid":["uuid","<1>"]}]
160 [{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0},{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
163 OVSDB_CHECK_EXECUTION([insert rows, delete all],
167 "row": {"number": 0, "name": "zero"},
168 "uuid-name": "first"},
171 "row": {"number": 1, "name": "one"},
172 "uuid-name": "second"},
179 "columns": ["name","number"]}]']],
180 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"count":2},{"rows":[]}]
183 OVSDB_CHECK_EXECUTION([insert row, query table, commit],
187 "row": {"number": 0, "name": "zero"}},
192 "durable": false}]']],
193 [[[{"uuid":["uuid","<0>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]},{}]
196 OVSDB_CHECK_EXECUTION([insert row, query table, commit durably],
200 "row": {"number": 0, "name": "zero"}},
205 "durable": true}]']],
206 [[[{"uuid":["uuid","<0>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]},{}]
209 OVSDB_CHECK_EXECUTION([equality wait with correct rows],
213 "row": {"number": 0, "name": "zero"}},
216 "row": {"number": 1, "name": "one"}},
221 "columns": ["name", "number"],
223 "rows": [{"name": "zero", "number": 0},
224 {"name": "one", "number": 1}]}]']],
225 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
228 OVSDB_CHECK_EXECUTION([equality wait with extra row],
232 "row": {"number": 0, "name": "zero"}},
235 "row": {"number": 1, "name": "one"}},
240 "columns": ["name", "number"],
242 "rows": [{"name": "zero", "number": 0},
243 {"name": "one", "number": 1},
244 {"name": "two", "number": 2}]}]']],
245 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"wait\" timed out","error":"timed out"}]
248 OVSDB_CHECK_EXECUTION([equality wait with missing row],
252 "row": {"number": 0, "name": "zero"}},
255 "row": {"number": 1, "name": "one"}},
260 "columns": ["name", "number"],
262 "rows": [{"name": "one", "number": 1}]}]']],
263 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"wait\" timed out","error":"timed out"}]
266 OVSDB_CHECK_EXECUTION([inequality wait with correct rows],
270 "row": {"number": 0, "name": "zero"}},
273 "row": {"number": 1, "name": "one"}},
278 "columns": ["name", "number"],
280 "rows": [{"name": "zero", "number": 0},
281 {"name": "one", "number": 1}]}]']],
282 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"wait\" timed out","error":"timed out"}]
285 OVSDB_CHECK_EXECUTION([inequality wait with extra row],
289 "row": {"number": 0, "name": "zero"}},
292 "row": {"number": 1, "name": "one"}},
297 "columns": ["name", "number"],
299 "rows": [{"name": "zero", "number": 0},
300 {"name": "one", "number": 1},
301 {"name": "two", "number": 2}]}]']],
302 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
305 OVSDB_CHECK_EXECUTION([inequality wait with missing row],
309 "row": {"number": 0, "name": "zero"}},
312 "row": {"number": 1, "name": "one"}},
317 "columns": ["name", "number"],
319 "rows": [{"name": "one", "number": 1}]}]']],
320 [[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]