Setting tag sliver-openvswitch-2.2.90-1
[sliver-openvswitch.git] / tests / ovsdb-mutation.at
index 4308dd3..fc898b5 100644 (file)
@@ -99,6 +99,18 @@ test-ovsdb: syntax "["u","delete",["uuid","9179ca6d-6d65-400a-b455-3ad92783a099"
 ]])
 AT_CLEANUP
 
+AT_SETUP([disallowed mutations on immutable columns])
+AT_KEYWORDS([ovsdb negative mutation])
+AT_CHECK([[test-ovsdb parse-mutations \
+    '{"columns":
+        {"i": {"type": "integer", "mutable": false}}}' \
+    '[["i", "+=", 1]]'
+]],
+  [1], [],
+  [[test-ovsdb: syntax "["i","+=",1]": constraint violation: Cannot mutate immutable column i in table mytable.
+]])
+AT_CLEANUP
+
 OVSDB_CHECK_POSITIVE([mutations on sets],
   [[parse-mutations \
     '{"columns":
@@ -502,6 +514,45 @@ row 2: no change
 row 3: {"i":["set",[0,1]]}
 ]], [mutation])
 
+OVSDB_CHECK_POSITIVE([executing mutations on integer sets with constraints],
+  [[execute-mutations \
+    '{"columns": {"i": {"type": {"key": "integer",
+                                 "min": 1,
+                                 "max": 2}}}}' \
+    '[[["i", "insert", ["set", [1]]]],
+      [["i", "insert", ["set", [2]]]],
+      [["i", "delete", ["set", [1]]]],
+      [["i", "delete", ["set", [2]]]],
+      [["i", "delete", ["set", [0, 1]]]]]' \
+    '[{"i": ["set", [0]]},
+      {"i": ["set", [2]]},
+      {"i": ["set", [0, 1]]}']]],
+  [[mutation  0:
+row 0: {"i":["set",[0,1]]}
+row 1: {"i":["set",[1,2]]}
+row 2: no change
+
+mutation  1:
+row 0: {"i":["set",[0,2]]}
+row 1: no change
+row 2: constraint violation: Attempted to store 3 elements in set of 1 to 2 integers.
+
+mutation  2:
+row 0: no change
+row 1: no change
+row 2: {"i":0}
+
+mutation  3:
+row 0: no change
+row 1: constraint violation: Attempted to store 0 elements in set of 1 to 2 integers.
+row 2: no change
+
+mutation  4:
+row 0: constraint violation: Attempted to store 0 elements in set of 1 to 2 integers.
+row 1: no change
+row 2: constraint violation: Attempted to store 0 elements in set of 1 to 2 integers.
+]], [mutation])
+
 OVSDB_CHECK_POSITIVE([executing mutations on real sets],
   [[execute-mutations \
     '{"columns": {"r": {"type": {"key": {"type": "real",