X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Fovsdb-idl.at;h=0ce65355aa4700bd1bddad0a5b113afba4dbb749;hb=539e96f62300e4afab00e5906a28e3b89301d62e;hp=f0e6ff8afcf5fb2fd462a332a9aad3878bd38157;hpb=c3bb4bd7f1d9c045a5e5d7062b09d4dac4e48195;p=openvswitch diff --git a/tests/ovsdb-idl.at b/tests/ovsdb-idl.at index f0e6ff8a..0ce65355 100644 --- a/tests/ovsdb-idl.at +++ b/tests/ovsdb-idl.at @@ -17,12 +17,21 @@ AT_BANNER([OVSDB -- interface description language (IDL)]) m4_define([OVSDB_CHECK_IDL], [AT_SETUP([$1]) AT_KEYWORDS([ovsdb server idl positive $5]) - OVS_CHECK_LCOV([ovsdb-tool create db $abs_builddir/idltest.ovsschema], - [0], [stdout], [ignore]) - AT_CHECK([ovsdb-server --detach --pidfile=$PWD/server-pid --listen=punix:socket --unixctl=$PWD/unixctl db]) + OVS_CHECK_LCOV( + [SCHEMA=$abs_builddir/idltest.ovsschema + if test ! -e $SCHEMA; then + SCHEMA=$abs_srcdir/idltest.ovsschema + if test ! -e $SCHEMA; then + echo 'Failed to find idltest.ovsschema' + exit 1 + fi + fi + ovsdb-tool create db $SCHEMA], + [0], [stdout], [ignore]) + AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --pidfile=$PWD/server-pid --remote=punix:socket --unixctl=$PWD/unixctl db], [0], [ignore], [ignore]) m4_if([$2], [], [], [OVS_CHECK_LCOV([ovsdb-client transact unix:socket $2], [0], [ignore], [ignore], [kill `cat server-pid`])]) - AT_CHECK([test-ovsdb -vjsonrpc -t10 idl unix:socket $3], + AT_CHECK([test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket $3], [0], [stdout], [ignore], [kill `cat server-pid`]) AT_CHECK([sort stdout | perl $srcdir/uuidfilt.pl], [0], [$4], [], [kill `cat server-pid`]) @@ -137,130 +146,186 @@ OVSDB_CHECK_IDL([simple idl, initially populated], 003: done ]]) +OVSDB_CHECK_IDL([simple idl, writing via IDL], + [['[{"op": "insert", + "table": "simple", + "row": {"i": 1, + "r": 2.0, + "b": true, + "s": "mystring", + "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"], + "ia": ["set", [1, 2, 3]], + "ra": ["set", [-0.5]], + "ba": ["set", [true, false]], + "sa": ["set", ["abc", "def"]], + "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"], + ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}}, + {"op": "insert", + "table": "simple", + "row": {}}]']], + [['set 0 b 1, set 1 r 3.5' \ + 'insert 2, delete 1']], + [[000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1> +000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[false true] sa=[abc def] ua=[<3> <4>] uuid=<5> +001: commit, status=success +002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1> +002: i=1 r=3.5 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[false true] sa=[abc def] ua=[<3> <4>] uuid=<5> +003: commit, status=success +004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1> +004: i=2 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<6> +005: done +]]) + +OVSDB_CHECK_IDL([simple idl, increment operation], + [['[{"op": "insert", + "table": "simple", + "row": {}}]']], + [['set 0 r 2.0, increment simple i']], + [[000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1> +001: commit, status=success, increment=1 +002: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1> +003: done +]]) + OVSDB_CHECK_IDL([self-linking idl, consistent ops], [], [['[{"op": "insert", - "table": "selfLink", + "table": "link1", "row": {"i": 0, "k": ["named-uuid", "self"]}, "uuid-name": "self"}]' \ - '[{"op": "insert", - "table": "selfLink", - "row": {"i": 1}, + '[{"op": "declare", + "uuid-name": "row1"}, + {"op": "declare", + "uuid-name": "row2"}, + {"op": "insert", + "table": "link1", + "row": {"i": 1, "k": ["named-uuid", "row2"]}, "uuid-name": "row1"}, {"op": "insert", - "table": "selfLink", + "table": "link1", "row": {"i": 2, "k": ["named-uuid", "row1"]}, - "uuid-name": "row2"}, - {"op": "update", - "table": "selfLink", - "where": [["i", "==", 1]], - "row": {"k": ["named-uuid", "row2"]}}]' \ + "uuid-name": "row2"}]' \ '[{"op": "update", - "table": "selfLink", + "table": "link1", "where": [["i", "==", 1]], "row": {"k": ["uuid", "#1#"]}}]' \ '[{"op": "update", - "table": "selfLink", + "table": "link1", "where": [], "row": {"k": ["uuid", "#0#"]}}]']], [[000: empty 001: {"error":null,"result":[{"uuid":["uuid","<0>"]}]} -002: i=0 k=0 ka=[] uuid=<0> -003: {"error":null,"result":[{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]},{"count":1}]} -004: i=0 k=0 ka=[] uuid=<0> -004: i=1 k=2 ka=[] uuid=<1> -004: i=2 k=1 ka=[] uuid=<2> +002: i=0 k=0 ka=[] l2= uuid=<0> +003: {"error":null,"result":[{"uuid":"<1>"},{"uuid":"<2>"},{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]}]} +004: i=0 k=0 ka=[] l2= uuid=<0> +004: i=1 k=2 ka=[] l2= uuid=<1> +004: i=2 k=1 ka=[] l2= uuid=<2> 005: {"error":null,"result":[{"count":1}]} -006: i=0 k=0 ka=[] uuid=<0> -006: i=1 k=1 ka=[] uuid=<1> -006: i=2 k=1 ka=[] uuid=<2> +006: i=0 k=0 ka=[] l2= uuid=<0> +006: i=1 k=1 ka=[] l2= uuid=<1> +006: i=2 k=1 ka=[] l2= uuid=<2> 007: {"error":null,"result":[{"count":3}]} -008: i=0 k=0 ka=[] uuid=<0> -008: i=1 k=0 ka=[] uuid=<1> -008: i=2 k=0 ka=[] uuid=<2> +008: i=0 k=0 ka=[] l2= uuid=<0> +008: i=1 k=0 ka=[] l2= uuid=<1> +008: i=2 k=0 ka=[] l2= uuid=<2> 009: done ]]) OVSDB_CHECK_IDL([self-linking idl, inconsistent ops], [], [['[{"op": "insert", - "table": "selfLink", + "table": "link1", "row": {"i": 0, "k": ["uuid", "cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b"]}}]' \ '[{"op": "update", - "table": "selfLink", + "table": "link1", "where": [], "row": {"k": ["uuid", "#0#"]}}]' \ '[{"op": "update", - "table": "selfLink", + "table": "link1", "where": [], "row": {"k": ["uuid", "c2fca39a-e69a-42a4-9c56-5eca85839ce9"]}}]' \ '[{"op": "insert", - "table": "selfLink", + "table": "link1", "row": {"i": 1, "k": ["uuid", "52d752a3-b062-4668-9446-d2e0d4a14703"]}}]' \ '[{"op": "update", - "table": "selfLink", + "table": "link1", "where": [], "row": {"k": ["uuid", "#1#"]}}]' \ ]], [[000: empty 001: {"error":null,"result":[{"uuid":["uuid","<0>"]}]} -002: i=0 k= ka=[] uuid=<0> +002: i=0 k= ka=[] l2= uuid=<0> 003: {"error":null,"result":[{"count":1}]} -004: i=0 k=0 ka=[] uuid=<0> +004: i=0 k=0 ka=[] l2= uuid=<0> 005: {"error":null,"result":[{"count":1}]} -006: i=0 k= ka=[] uuid=<0> +006: i=0 k= ka=[] l2= uuid=<0> 007: {"error":null,"result":[{"uuid":["uuid","<1>"]}]} -008: i=0 k= ka=[] uuid=<0> -008: i=1 k= ka=[] uuid=<1> +008: i=0 k= ka=[] l2= uuid=<0> +008: i=1 k= ka=[] l2= uuid=<1> 009: {"error":null,"result":[{"count":2}]} -010: i=0 k=1 ka=[] uuid=<0> -010: i=1 k=1 ka=[] uuid=<1> +010: i=0 k=1 ka=[] l2= uuid=<0> +010: i=1 k=1 ka=[] l2= uuid=<1> 011: done ]]) OVSDB_CHECK_IDL([self-linking idl, sets], [], [['[{"op": "insert", - "table": "selfLink", + "table": "link1", "row": {"i": 0, "ka": ["set", [["named-uuid", "i0"]]]}, "uuid-name": "i0"}, {"op": "insert", - "table": "selfLink", + "table": "link1", "row": {"i": 1, "ka": ["set", [["named-uuid", "i1"]]]}, "uuid-name": "i1"}, {"op": "insert", - "table": "selfLink", + "table": "link1", "row": {"i": 2, "ka": ["set", [["named-uuid", "i2"]]]}, "uuid-name": "i2"}, {"op": "insert", - "table": "selfLink", + "table": "link1", "row": {"i": 3, "ka": ["set", [["named-uuid", "i3"]]]}, "uuid-name": "i3"}]' \ '[{"op": "update", - "table": "selfLink", + "table": "link1", "where": [], "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "#1#"], ["uuid", "#2#"], ["uuid", "#3#"]]]}}]' \ '[{"op": "update", - "table": "selfLink", + "table": "link1", "where": [], "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "88702e78-845b-4a6e-ad08-cf68922ae84a"], ["uuid", "#2#"], ["uuid", "1ac2b12e-b767-4805-a55d-43976e40c465"]]]}}]']], [[000: empty 001: {"error":null,"result":[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]},{"uuid":["uuid","<3>"]}]} -002: i=0 k= ka=[0] uuid=<0> -002: i=1 k= ka=[1] uuid=<1> -002: i=2 k= ka=[2] uuid=<2> -002: i=3 k= ka=[3] uuid=<3> +002: i=0 k= ka=[0] l2= uuid=<0> +002: i=1 k= ka=[1] l2= uuid=<1> +002: i=2 k= ka=[2] l2= uuid=<2> +002: i=3 k= ka=[3] l2= uuid=<3> 003: {"error":null,"result":[{"count":4}]} -004: i=0 k= ka=[0 1 2 3] uuid=<0> -004: i=1 k= ka=[0 1 2 3] uuid=<1> -004: i=2 k= ka=[0 1 2 3] uuid=<2> -004: i=3 k= ka=[0 1 2 3] uuid=<3> +004: i=0 k= ka=[0 1 2 3] l2= uuid=<0> +004: i=1 k= ka=[0 1 2 3] l2= uuid=<1> +004: i=2 k= ka=[0 1 2 3] l2= uuid=<2> +004: i=3 k= ka=[0 1 2 3] l2= uuid=<3> 005: {"error":null,"result":[{"count":4}]} -006: i=0 k= ka=[0 2] uuid=<0> -006: i=1 k= ka=[0 2] uuid=<1> -006: i=2 k= ka=[0 2] uuid=<2> -006: i=3 k= ka=[0 2] uuid=<3> +006: i=0 k= ka=[0 2] l2= uuid=<0> +006: i=1 k= ka=[0 2] l2= uuid=<1> +006: i=2 k= ka=[0 2] l2= uuid=<2> +006: i=3 k= ka=[0 2] l2= uuid=<3> 007: done ]]) -# XXX self-linking idl, maps +OVSDB_CHECK_IDL([external-linking idl, consistent ops], + [], + [['[{"op": "insert", + "table": "link2", + "row": {"i": 0}, + "uuid-name": "row0"}, + {"op": "insert", + "table": "link1", + "row": {"i": 1, "l2": ["set", [["named-uuid", "row0"]]]}, + "uuid-name": "row1"}]']], + [[000: empty +001: {"error":null,"result":[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]}]} +002: i=0 l1= uuid=<0> +002: i=1 k= ka=[] l2=0 uuid=<1> +003: done +]])