X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Fovsdb-monitor.at;h=16e2471969a3057064d9ba9f29ee229dc1e439f8;hb=47a3c536c345925b6d3837643b0e8a24b752fad3;hp=cd62ca8639ef4e840d9350b2afd6c70989f3f7c3;hpb=a8425c53c5785856cabe80295f0cea0135febdb6;p=openvswitch diff --git a/tests/ovsdb-monitor.at b/tests/ovsdb-monitor.at index cd62ca86..16e24719 100644 --- a/tests/ovsdb-monitor.at +++ b/tests/ovsdb-monitor.at @@ -20,27 +20,163 @@ m4_define([OVSDB_CHECK_MONITOR], AT_KEYWORDS([ovsdb server monitor positive $7]) AT_DATA([schema], [$2 ]) - OVS_CHECK_LCOV([ovsdb-tool create db schema], [0], [stdout], [ignore]) - m4_if([$3], [], [], - [OVS_CHECK_LCOV([ovsdb-tool transact db '$2'], [0], [ignore], [ignore])]) - AT_CHECK([ovsdb-server --detach --pidfile=$PWD/server-pid --listen=punix:socket --unixctl=$PWD/unixctl db]) - AT_CHECK([ovsdb-client monitor --format=csv unix:socket $4 > output & echo $! > monitor-pid], + AT_CHECK([ovsdb-tool create db schema], [0], [stdout], [ignore]) + m4_foreach([txn], [$3], + [AT_CHECK([ovsdb-tool transact db 'txn'], [0], [ignore], [ignore])]) + AT_CHECK([ovsdb-server --detach --pidfile=$PWD/server-pid --remote=punix:socket --unixctl=$PWD/unixctl db], [0], [ignore], [ignore]) + AT_CHECK([ovsdb-client --detach --pidfile=$PWD/client-pid -d json monitor --format=csv unix:socket ordinals $4 > output], [0], [ignore], [ignore], [kill `cat server-pid`]) m4_foreach([txn], [$5], - [OVS_CHECK_LCOV([ovsdb-client transact unix:socket 'txn'], [0], - [ignore], [ignore], [kill `cat server-pid monitor-pid`])]) + [AT_CHECK([ovsdb-client transact unix:socket 'txn'], [0], + [ignore], [ignore], [kill `cat server-pid client-pid`])]) + AT_CHECK([ovsdb-client transact unix:socket '[[]]'], [0], + [ignore], [ignore], [kill `cat server-pid client-pid`]) AT_CHECK([ovs-appctl -t $PWD/unixctl -e exit], [0], [ignore], [ignore]) - wait - AT_CHECK([perl $srcdir/uuidfilt.pl output], [0], [$6]) + OVS_WAIT_UNTIL([test ! -e server-pid && test ! -e client-pid]) + AT_CHECK([perl $srcdir/uuidfilt.pl output], [0], [$6], [ignore]) AT_CLEANUP]) -OVSDB_CHECK_MONITOR([monitor initially empty table], +OVSDB_CHECK_MONITOR([monitor insert into empty table], [ORDINAL_SCHEMA], [], [ordinals], - [[[[{"op": "insert", + [[[["ordinals", + {"op": "insert", "table": "ordinals", "row": {"number": 0, "name": "zero"}}]]]], [[row,action,name,number,_version <0>,insert,"""zero""",0,"[""uuid"",""<1>""]" ]]) + +OVSDB_CHECK_MONITOR([monitor insert into populated table], + [ORDINAL_SCHEMA], + [[[["ordinals", + {"op": "insert", + "table": "ordinals", + "row": {"number": 10, "name": "ten"}}]]]], + [ordinals], + [[[["ordinals", + {"op": "insert", + "table": "ordinals", + "row": {"number": 0, "name": "zero"}}]]]], + [[row,action,name,number,_version +<0>,initial,"""ten""",10,"[""uuid"",""<1>""]" + +row,action,name,number,_version +<2>,insert,"""zero""",0,"[""uuid"",""<3>""]" +]]) + +OVSDB_CHECK_MONITOR([monitor delete], + [ORDINAL_SCHEMA], + [[[["ordinals", + {"op": "insert", + "table": "ordinals", + "row": {"number": 10, "name": "ten"}}]]]], + [ordinals], + [[[["ordinals", + {"op": "delete", + "table": "ordinals", + "where": [["number", "==", 10]]}]]]], + [[row,action,name,number,_version +<0>,initial,"""ten""",10,"[""uuid"",""<1>""]" + +row,action,name,number,_version +<0>,delete,"""ten""",10,"[""uuid"",""<1>""]" +]]) + +OVSDB_CHECK_MONITOR([monitor row update], + [ORDINAL_SCHEMA], + [[[["ordinals", + {"op": "insert", + "table": "ordinals", + "row": {"number": 10, "name": "ten"}}]]]], + [ordinals], + [[[["ordinals", + {"op": "update", + "table": "ordinals", + "where": [["number", "==", 10]], + "row": {"name": "five plus five"}}]]]], + [[row,action,name,number,_version +<0>,initial,"""ten""",10,"[""uuid"",""<1>""]" + +row,action,name,number,_version +<0>,old,"""ten""",,"[""uuid"",""<1>""]" +,new,"""five plus five""",10,"[""uuid"",""<2>""]" +]]) + +OVSDB_CHECK_MONITOR([monitor no-op row updates], + [ORDINAL_SCHEMA], + [[[["ordinals", + {"op": "insert", + "table": "ordinals", + "row": {"number": 10, "name": "ten"}}]]]], + [ordinals], + [[[["ordinals", + {"op": "update", + "table": "ordinals", + "where": [["number", "==", 10]], + "row": {"number": 10, "name": "ten"}}]]], + [[["ordinals", + {"op": "insert", + "table": "ordinals", + "row": {"number": 9, "name": "nine"}}]]]], + [[row,action,name,number,_version +<0>,initial,"""ten""",10,"[""uuid"",""<1>""]" + +row,action,name,number,_version +<2>,insert,"""nine""",9,"[""uuid"",""<3>""]" +]]) + +OVSDB_CHECK_MONITOR([monitor insert-and-update transaction], + [ORDINAL_SCHEMA], + [[[["ordinals", + {"op": "insert", + "table": "ordinals", + "row": {"number": 10, "name": "ten"}}]]]], + [ordinals], + [[[["ordinals", + {"op": "insert", + "table": "ordinals", + "row": {"number": 9, "name": "nine"}, + "uuid-name": "nine"}, + {"op": "update", + "table": "ordinals", + "where": [["_uuid", "==", ["named-uuid", "nine"]]], + "row": {"name": "three squared"}}]]]], + [[row,action,name,number,_version +<0>,initial,"""ten""",10,"[""uuid"",""<1>""]" + +row,action,name,number,_version +<2>,insert,"""three squared""",9,"[""uuid"",""<3>""]" +]]) + + +OVSDB_CHECK_MONITOR([monitor insert-update-and-delete transaction], + [ORDINAL_SCHEMA], + [[[["ordinals", + {"op": "insert", + "table": "ordinals", + "row": {"number": 10, "name": "ten"}}]]]], + [ordinals], + [[[["ordinals", + {"op": "insert", + "table": "ordinals", + "row": {"number": 9, "name": "nine"}, + "uuid-name": "nine"}, + {"op": "update", + "table": "ordinals", + "where": [["_uuid", "==", ["named-uuid", "nine"]]], + "row": {"name": "three squared"}}, + {"op": "delete", + "table": "ordinals", + "where": [["_uuid", "==", ["named-uuid", "nine"]]]}, + {"op": "insert", + "table": "ordinals", + "row": {"number": 7, "name": "seven"}}]]]], + [[row,action,name,number,_version +<0>,initial,"""ten""",10,"[""uuid"",""<1>""]" + +row,action,name,number,_version +<2>,insert,"""seven""",7,"[""uuid"",""<3>""]" +]]) +