json: Accurately parse very large real numbers.
[sliver-openvswitch.git] / tests / ovsdb-idl.at
index cf9f1ba..6591419 100644 (file)
@@ -19,10 +19,10 @@ m4_define([OVSDB_CHECK_IDL],
    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], [0], [ignore], [ignore])
+   AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --pidfile=$PWD/server-pid --listen=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,24 +137,54 @@ 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([self-linking idl, consistent ops],
   [],
   [['[{"op": "insert",
        "table": "link1",
        "row": {"i": 0, "k": ["named-uuid", "self"]},
        "uuid-name": "self"}]' \
-    '[{"op": "insert",
+    '[{"op": "declare",
+       "uuid-name": "row1"},
+      {"op": "declare",
+       "uuid-name": "row2"},
+      {"op": "insert",
        "table": "link1",
-       "row": {"i": 1},
+       "row": {"i": 1, "k": ["named-uuid", "row2"]},
        "uuid-name": "row1"},
       {"op": "insert",
        "table": "link1",
        "row": {"i": 2, "k": ["named-uuid", "row1"]},
-       "uuid-name": "row2"},
-      {"op": "update",
-       "table": "link1",
-       "where": [["i", "==", 1]],
-       "row": {"k": ["named-uuid", "row2"]}}]' \
+       "uuid-name": "row2"}]' \
     '[{"op": "update",
        "table": "link1",
        "where": [["i", "==", 1]],
@@ -166,7 +196,7 @@ OVSDB_CHECK_IDL([self-linking idl, consistent ops],
   [[000: empty
 001: {"error":null,"result":[{"uuid":["uuid","<0>"]}]}
 002: i=0 k=0 ka=[] l2= uuid=<0>
-003: {"error":null,"result":[{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]},{"count":1}]}
+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>
@@ -263,7 +293,6 @@ OVSDB_CHECK_IDL([self-linking idl, sets],
 007: done
 ]])
 
-
 OVSDB_CHECK_IDL([external-linking idl, consistent ops],
   [],
   [['[{"op": "insert",