aboutsummaryrefslogtreecommitdiff
path: root/tests/ovsdb-data.at
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2010-02-25 14:59:33 -0800
committerBen Pfaff <blp@nicira.com>2010-02-25 14:59:41 -0800
commitbfc96d9b50ae119fcbf39a9511bd9f662e7ad390 (patch)
tree254e753c940fa0997879b1494ef01d0558d91a4b /tests/ovsdb-data.at
parenta26cc67c16932fa9d07da200bbff75889cfe7529 (diff)
ovsdb: Add support for "enum" constraints.
Some of the uses for the formerly supported regular expression constraints were simply to limit values to those in a set of allowed values. This commit adds support for that kind of simple enumeration constraint.
Diffstat (limited to 'tests/ovsdb-data.at')
-rw-r--r--tests/ovsdb-data.at75
1 files changed, 74 insertions, 1 deletions
diff --git a/tests/ovsdb-data.at b/tests/ovsdb-data.at
index 031eee04..4bfd9099 100644
--- a/tests/ovsdb-data.at
+++ b/tests/ovsdb-data.at
@@ -198,7 +198,80 @@ OVSDB_CHECK_NEGATIVE([uuids must be valid],
[parse-atom-strings '[["uuid"]]' '1234-5678'],
["1234-5678" is not a valid UUID])
-AT_BANNER([OVSDB -- atoms with constraints])
+AT_BANNER([OVSDB -- atoms with enum constraints])
+
+OVSDB_CHECK_POSITIVE([integer atom enum],
+ [[parse-atoms '[{"type": "integer", "enum": ["set", [1, 6, 8, 10]]}]' \
+ '[0]' \
+ '[1]' \
+ '[2]' \
+ '[3]' \
+ '[6]' \
+ '[7]' \
+ '[8]' \
+ '[9]' \
+ '[10]' \
+ '[11]']],
+ [[constraint violation: 0 is not one of the allowed values ([1, 6, 8, 10])
+1
+constraint violation: 2 is not one of the allowed values ([1, 6, 8, 10])
+constraint violation: 3 is not one of the allowed values ([1, 6, 8, 10])
+6
+constraint violation: 7 is not one of the allowed values ([1, 6, 8, 10])
+8
+constraint violation: 9 is not one of the allowed values ([1, 6, 8, 10])
+10
+constraint violation: 11 is not one of the allowed values ([1, 6, 8, 10])]])
+
+OVSDB_CHECK_POSITIVE([real atom enum],
+ [[parse-atoms '[{"type": "real", "enum": ["set", [-1.5, 1.5]]}]' \
+ '[-2]' \
+ '[-1]' \
+ '[-1.5]' \
+ '[0]' \
+ '[1]' \
+ '[1.5]' \
+ '[2]']],
+ [[constraint violation: -2 is not one of the allowed values ([-1.5, 1.5])
+constraint violation: -1 is not one of the allowed values ([-1.5, 1.5])
+-1.5
+constraint violation: 0 is not one of the allowed values ([-1.5, 1.5])
+constraint violation: 1 is not one of the allowed values ([-1.5, 1.5])
+1.5
+constraint violation: 2 is not one of the allowed values ([-1.5, 1.5])]])
+
+OVSDB_CHECK_POSITIVE([boolean atom enum],
+ [[parse-atoms '[{"type": "boolean", "enum": false}]' \
+ '[false]' \
+ '[true]']],
+ [[false
+constraint violation: true is not one of the allowed values ([false])]])
+
+OVSDB_CHECK_POSITIVE([string atom enum],
+ [[parse-atoms '[{"type": "string", "enum": ["set", ["abc", "def"]]}]' \
+ '[""]' \
+ '["ab"]' \
+ '["abc"]' \
+ '["def"]' \
+ '["defg"]' \
+ '["DEF"]']],
+ [[constraint violation: "" is not one of the allowed values ([abc, def])
+constraint violation: ab is not one of the allowed values ([abc, def])
+"abc"
+"def"
+constraint violation: defg is not one of the allowed values ([abc, def])
+constraint violation: DEF is not one of the allowed values ([abc, def])]])
+
+OVSDB_CHECK_POSITIVE([uuid atom enum],
+ [[parse-atoms '[{"type": "uuid", "enum": ["set", [["uuid", "6d53a6dd-2da7-4924-9927-97f613812382"], ["uuid", "52cbc842-137a-4db5-804f-9f34106a0ba3"]]]}]' \
+ '["uuid", "6d53a6dd-2da7-4924-9927-97f613812382"]' \
+ '["uuid", "52cbc842-137a-4db5-804f-9f34106a0ba3"]' \
+ '["uuid", "dab2a6b2-6094-4f43-a7ef-4c0f0608f176"]']],
+ [[["uuid","6d53a6dd-2da7-4924-9927-97f613812382"]
+["uuid","52cbc842-137a-4db5-804f-9f34106a0ba3"]
+constraint violation: dab2a6b2-6094-4f43-a7ef-4c0f0608f176 is not one of the allowed values ([52cbc842-137a-4db5-804f-9f34106a0ba3, 6d53a6dd-2da7-4924-9927-97f613812382])]])
+
+AT_BANNER([OVSDB -- atoms with other constraints])
OVSDB_CHECK_POSITIVE([integers >= 5],
[[parse-atoms '[{"type": "integer", "minInteger": 5}]' \