mirror of
https://github.com/openvswitch/ovs
synced 2025-08-22 01:51:26 +00:00
322 lines
10 KiB
Plaintext
322 lines
10 KiB
Plaintext
|
AT_BANNER([OVSDB -- execution])
|
||
|
|
||
|
m4_define([ORDINAL_SCHEMA],
|
||
|
[['{"name": "mydb",
|
||
|
"tables": {
|
||
|
"ordinals": {
|
||
|
"columns": {
|
||
|
"number": {"type": "integer"},
|
||
|
"name": {"type": "string"}}}}}']])
|
||
|
|
||
|
# This is like OVSDB_CHECK_POSITIVE, except that UUIDs in the output
|
||
|
# are replaced by markers of the form <N> where N is a number. The
|
||
|
# first unique UUID is replaced by <0>, the next by <1>, and so on.
|
||
|
# If a given UUID appears more than once it is always replaced by the
|
||
|
# same marker.
|
||
|
m4_define([OVSDB_CHECK_EXECUTION],
|
||
|
[AT_SETUP([$1])
|
||
|
AT_KEYWORDS([ovsdb execute execution positive $4])
|
||
|
OVS_CHECK_LCOV([test-ovsdb execute $2], [0], [stdout], [])
|
||
|
AT_CHECK([perl $srcdir/uuidfilt.pl stdout], [0], [$3])
|
||
|
AT_CLEANUP])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([insert row, query table],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"}}]' \
|
||
|
'[{"op": "select",
|
||
|
"table": "ordinals",
|
||
|
"where": []}]']],
|
||
|
[[[{"uuid":["uuid","<0>"]}]
|
||
|
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([insert rows, query by value],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"}}]' \
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 1, "name": "one"}}]' \
|
||
|
'[{"op": "select",
|
||
|
"table": "ordinals",
|
||
|
"where": [["name", "==", "zero"]]}]'\
|
||
|
'[{"op": "select",
|
||
|
"table": "ordinals",
|
||
|
"where": [["name", "==", "one"]]}]']],
|
||
|
[[[{"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}]}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([insert rows, query by named-uuid],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"},
|
||
|
"uuid-name": "first"},
|
||
|
{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 1, "name": "one"},
|
||
|
"uuid-name": "second"},
|
||
|
{"op": "select",
|
||
|
"table": "ordinals",
|
||
|
"where": [["_uuid", "==", ["named-uuid", "first"]]]},
|
||
|
{"op": "select",
|
||
|
"table": "ordinals",
|
||
|
"where": [["_uuid", "==", ["named-uuid", "second"]]]}]']],
|
||
|
[[[{"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}]}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([insert rows, update rows by value],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"},
|
||
|
"uuid-name": "first"}]' \
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 1, "name": "one"},
|
||
|
"uuid-name": "first"}]' \
|
||
|
'[{"op": "update",
|
||
|
"table": "ordinals",
|
||
|
"where": [["name", "==", "zero"]],
|
||
|
"row": {"name": "nought"}}]' \
|
||
|
'[{"op": "select",
|
||
|
"table": "ordinals",
|
||
|
"where": [],
|
||
|
"sort": ["number"]}]']],
|
||
|
[[[{"uuid":["uuid","<0>"]}]
|
||
|
[{"uuid":["uuid","<1>"]}]
|
||
|
[{"count":1}]
|
||
|
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"nought","number":0},{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([insert rows, delete by named-uuid],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"},
|
||
|
"uuid-name": "first"},
|
||
|
{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 1, "name": "one"},
|
||
|
"uuid-name": "second"},
|
||
|
{"op": "delete",
|
||
|
"table": "ordinals",
|
||
|
"where": [["_uuid", "==", ["named-uuid", "first"]]]},
|
||
|
{"op": "select",
|
||
|
"table": "ordinals",
|
||
|
"where": [],
|
||
|
"columns": ["name","number"]}]']],
|
||
|
[[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"count":1},{"rows":[{"name":"one","number":1}]}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([insert rows, delete rows by value],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"},
|
||
|
"uuid-name": "first"}]' \
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 1, "name": "one"},
|
||
|
"uuid-name": "first"}]' \
|
||
|
'[{"op": "delete",
|
||
|
"table": "ordinals",
|
||
|
"where": [["name", "==", "zero"]]}]' \
|
||
|
'[{"op": "select",
|
||
|
"table": "ordinals",
|
||
|
"where": []}]']],
|
||
|
[[[{"uuid":["uuid","<0>"]}]
|
||
|
[{"uuid":["uuid","<1>"]}]
|
||
|
[{"count":1}]
|
||
|
[{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<2>"],"name":"one","number":1}]}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([insert rows, delete by (non-matching) value],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"},
|
||
|
"uuid-name": "first"}]' \
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 1, "name": "one"},
|
||
|
"uuid-name": "first"}]' \
|
||
|
'[{"op": "delete",
|
||
|
"table": "ordinals",
|
||
|
"where": [["name", "==", "nought"]]}]' \
|
||
|
'[{"op": "select",
|
||
|
"table": "ordinals",
|
||
|
"where": [],
|
||
|
"sort": ["number"]}]']],
|
||
|
[[[{"uuid":["uuid","<0>"]}]
|
||
|
[{"uuid":["uuid","<1>"]}]
|
||
|
[{"count":0}]
|
||
|
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0},{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([insert rows, delete all],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"},
|
||
|
"uuid-name": "first"},
|
||
|
{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 1, "name": "one"},
|
||
|
"uuid-name": "second"},
|
||
|
{"op": "delete",
|
||
|
"table": "ordinals",
|
||
|
"where": []},
|
||
|
{"op": "select",
|
||
|
"table": "ordinals",
|
||
|
"where": [],
|
||
|
"columns": ["name","number"]}]']],
|
||
|
[[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"count":2},{"rows":[]}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([insert row, query table, commit],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"}},
|
||
|
{"op": "select",
|
||
|
"table": "ordinals",
|
||
|
"where": []},
|
||
|
{"op": "commit",
|
||
|
"durable": false}]']],
|
||
|
[[[{"uuid":["uuid","<0>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]},{}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([insert row, query table, commit durably],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"}},
|
||
|
{"op": "select",
|
||
|
"table": "ordinals",
|
||
|
"where": []},
|
||
|
{"op": "commit",
|
||
|
"durable": true}]']],
|
||
|
[[[{"uuid":["uuid","<0>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]},{}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([equality wait with correct rows],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"}},
|
||
|
{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 1, "name": "one"}},
|
||
|
{"op": "wait",
|
||
|
"timeout": 0,
|
||
|
"table": "ordinals",
|
||
|
"where": [],
|
||
|
"columns": ["name", "number"],
|
||
|
"until": "==",
|
||
|
"rows": [{"name": "zero", "number": 0},
|
||
|
{"name": "one", "number": 1}]}]']],
|
||
|
[[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([equality wait with extra row],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"}},
|
||
|
{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 1, "name": "one"}},
|
||
|
{"op": "wait",
|
||
|
"timeout": 0,
|
||
|
"table": "ordinals",
|
||
|
"where": [],
|
||
|
"columns": ["name", "number"],
|
||
|
"until": "==",
|
||
|
"rows": [{"name": "zero", "number": 0},
|
||
|
{"name": "one", "number": 1},
|
||
|
{"name": "two", "number": 2}]}]']],
|
||
|
[[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"wait\" timed out","error":"timed out"}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([equality wait with missing row],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"}},
|
||
|
{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 1, "name": "one"}},
|
||
|
{"op": "wait",
|
||
|
"timeout": 0,
|
||
|
"table": "ordinals",
|
||
|
"where": [],
|
||
|
"columns": ["name", "number"],
|
||
|
"until": "==",
|
||
|
"rows": [{"name": "one", "number": 1}]}]']],
|
||
|
[[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"wait\" timed out","error":"timed out"}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([inequality wait with correct rows],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"}},
|
||
|
{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 1, "name": "one"}},
|
||
|
{"op": "wait",
|
||
|
"timeout": 0,
|
||
|
"table": "ordinals",
|
||
|
"where": [],
|
||
|
"columns": ["name", "number"],
|
||
|
"until": "!=",
|
||
|
"rows": [{"name": "zero", "number": 0},
|
||
|
{"name": "one", "number": 1}]}]']],
|
||
|
[[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"wait\" timed out","error":"timed out"}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([inequality wait with extra row],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"}},
|
||
|
{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 1, "name": "one"}},
|
||
|
{"op": "wait",
|
||
|
"timeout": 0,
|
||
|
"table": "ordinals",
|
||
|
"where": [],
|
||
|
"columns": ["name", "number"],
|
||
|
"until": "!=",
|
||
|
"rows": [{"name": "zero", "number": 0},
|
||
|
{"name": "one", "number": 1},
|
||
|
{"name": "two", "number": 2}]}]']],
|
||
|
[[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
|
||
|
]])
|
||
|
|
||
|
OVSDB_CHECK_EXECUTION([inequality wait with missing row],
|
||
|
[ORDINAL_SCHEMA [\
|
||
|
'[{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 0, "name": "zero"}},
|
||
|
{"op": "insert",
|
||
|
"table": "ordinals",
|
||
|
"row": {"number": 1, "name": "one"}},
|
||
|
{"op": "wait",
|
||
|
"timeout": 0,
|
||
|
"table": "ordinals",
|
||
|
"where": [],
|
||
|
"columns": ["name", "number"],
|
||
|
"until": "!=",
|
||
|
"rows": [{"name": "one", "number": 1}]}]']],
|
||
|
[[[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
|
||
|
]])
|