ovsdb-server: Fix a reference count leak bug
[cascardo/ovs.git] / tests / ovsdb-condition.at
index d3d7d83..ab54b1c 100644 (file)
@@ -576,3 +576,84 @@ condition 29: T-TTT ---T- -----
 condition 30: TTT-T -T-T- T----
 condition 31: T-T-T ---T- -----
 condition 32: ----- T---- ---T-], [condition])
+
+OVSDB_CHECK_POSITIVE([evaluating conditions on optional integers],
+  [[evaluate-conditions \
+    '{"columns": {"i": {"type": {"key": "integer", "min": 0, "max": 1}}}}' \
+    '[[["i", "<", 1]],
+      [["i", "<=", 1]],
+      [["i", "==", 1]],
+      [["i", "!=", 1]],
+      [["i", ">=", 1]],
+      [["i", ">", 1]],
+      [["i", "includes", 1]],
+      [["i", "excludes", 1]],
+      [["i", ">", 0], ["i", "<", 2]]]' \
+    '[{"i": ["set", []]},
+      {"i": ["set", [0]]},
+      {"i": ["set", [1]]},
+      {"i": ["set", [2]]}]']],
+  [dnl
+condition  0: -T--
+condition  1: -TT-
+condition  2: --T-
+condition  3: TT-T
+condition  4: --TT
+condition  5: ---T
+condition  6: --T-
+condition  7: TT-T
+condition  8: --T-], [condition])
+
+OVSDB_CHECK_POSITIVE([evaluating conditions on optional strings],
+  [[evaluate-conditions \
+    '{"columns": {"s": {"type": {"key": "string", "min": 0, "max": 1}}}}' \
+    '[[["s", "==", ""]],
+      [["s", "!=", ""]],
+      [["s", "includes", ""]],
+      [["s", "excludes", ""]],
+      [["s", "==", "foo"]],
+      [["s", "!=", "foo"]],
+      [["s", "includes", "foo"]],
+      [["s", "excludes", "foo"]],
+      [["s", "!=", "foo"], ["s", "!=", ""]]]' \
+    '[{"s": ["set", [""]]},
+      {"s": ["set", ["foo"]]},
+      {"s": ["set", ["xxx"]]},
+      {"s": ["set", []]}]']],
+  [dnl
+condition  0: T---
+condition  1: -TTT
+condition  2: T---
+condition  3: -TTT
+condition  4: -T--
+condition  5: T-TT
+condition  6: -T--
+condition  7: T-TT
+condition  8: --TT], [condition])
+
+OVSDB_CHECK_POSITIVE([evaluating conditions on optional reals],
+  [[evaluate-conditions \
+    '{"columns": {"r": {"type": {"key": "real", "min": 0, "max": 1}}}}' \
+    '[[["r", "<", 5.0]],
+      [["r", "<=", 5.0]],
+      [["r", "==", 5.0]],
+      [["r", "!=", 5.0]],
+      [["r", ">=", 5.0]],
+      [["r", ">", 5.0]],
+      [["r", "includes", 5.0]],
+      [["r", "excludes", 5.0]],
+      [["r", "!=", 0], ["r", "!=", 5.1]]]' \
+    '[{"r": ["set", [0]]},
+      {"r": ["set", [5.0]]},
+      {"r": ["set", [5.1]]},
+      {"r": ["set", []]}]']],
+  [dnl
+condition  0: T---
+condition  1: TT--
+condition  2: -T--
+condition  3: T-TT
+condition  4: -TT-
+condition  5: --T-
+condition  6: -T--
+condition  7: T-TT
+condition  8: -T-T], [condition])