AT_BANNER([OVSDB -- atomic types]) OVSDB_CHECK_POSITIVE([integer], [[parse-atomic-type '["integer"]' ]], ["integer"]) OVSDB_CHECK_POSITIVE([real], [[parse-atomic-type '["real"]' ]], ["real"]) OVSDB_CHECK_POSITIVE([boolean], [[parse-atomic-type '["boolean"]' ]], ["boolean"]) OVSDB_CHECK_POSITIVE([string], [[parse-atomic-type '["string"]' ]], ["string"]) OVSDB_CHECK_POSITIVE([uuid], [[parse-atomic-type '["uuid"]' ]], ["uuid"]) OVSDB_CHECK_NEGATIVE([void is not a valid atomic-type], [[parse-atomic-type '["void"]' ]], ["void" is not an atomic-type]) AT_BANNER([OVSDB -- simple types]) OVSDB_CHECK_POSITIVE([simple integer], [[parse-type '["integer"]' ]], ["integer"]) OVSDB_CHECK_POSITIVE([simple real], [[parse-type '["real"]' ]], ["real"]) OVSDB_CHECK_POSITIVE([simple boolean], [[parse-type '["boolean"]' ]], ["boolean"]) OVSDB_CHECK_POSITIVE([simple string], [[parse-type '["string"]' ]], ["string"]) OVSDB_CHECK_POSITIVE([simple uuid], [[parse-type '["uuid"]' ]], ["uuid"]) OVSDB_CHECK_POSITIVE([integer in object], [[parse-type '{"key": "integer"}' ]], ["integer"]) OVSDB_CHECK_POSITIVE([real in object with explicit min and max], [[parse-type '{"key": "real", "min": 1, "max": 1}' ]], ["real"]) OVSDB_CHECK_NEGATIVE([key type is required], [[parse-type '{}' ]], [Required 'key' member is missing.]) OVSDB_CHECK_NEGATIVE([void is not a valid type], [[parse-type '["void"]' ]], ["void" is not an atomic-type]) AT_BANNER([OVSDB -- set types]) OVSDB_CHECK_POSITIVE([optional boolean], [[parse-type '{"key": "boolean", "min": 0}' ]], [[{"key":"boolean","min":0}]], [set]) OVSDB_CHECK_POSITIVE([set of 1 to 3 uuids], [[parse-type '{"key": "uuid", "min": 1, "max": 3}' ]], [[{"key":"uuid","max":3}]]) OVSDB_CHECK_POSITIVE([set of 0 to 3 strings], [[parse-type '{"key": "string", "min": 0, "max": 3}' ]], [[{"key":"string","max":3,"min":0}]]) OVSDB_CHECK_POSITIVE([set of 0 or more integers], [[parse-type '{"key": "integer", "min": 0, "max": "unlimited"}']], [[{"key":"integer","max":"unlimited","min":0}]]) OVSDB_CHECK_POSITIVE([set of 10 or more reals], [[parse-type '{"key": "real", "min": 10, "max": "unlimited"}']], [[{"key":"real","max":"unlimited","min":10}]]) OVSDB_CHECK_NEGATIVE([set max cannot be less than min], [[parse-type '{"key": "real", "min": 5, "max": 3}' ]], [ovsdb type fails constraint checks]) OVSDB_CHECK_NEGATIVE([set max cannot be negative], [[parse-type '{"key": "real", "max": -1}' ]], [bad min or max value]) OVSDB_CHECK_NEGATIVE([set min cannot be negative], [[parse-type '{"key": "real", "min": -1}' ]], [bad min or max value]) AT_BANNER([OVSDB -- map types]) OVSDB_CHECK_POSITIVE([map of 1 integer to boolean], [[parse-type '{"key": "integer", "value": "boolean"}' ]], [[{"key":"integer","value":"boolean"}]]) OVSDB_CHECK_POSITIVE([map of 1 boolean to integer, explicit min and max], [[parse-type '{"key": "boolean", "value": "integer", "min": 1, "max": 1}' ]], [[{"key":"boolean","value":"integer"}]]) OVSDB_CHECK_POSITIVE([map of 2 to 5 uuid to real], [[parse-type '{"key": "uuid", "value": "real", "min": 2, "max": 5}' ]], [[{"key":"uuid","max":5,"min":2,"value":"real"}]]) OVSDB_CHECK_POSITIVE([map of 0 to 10 string to uuid], [[parse-type '{"key": "string", "value": "uuid", "min": 0, "max": 10}' ]], [[{"key":"string","max":10,"min":0,"value":"uuid"}]]) OVSDB_CHECK_POSITIVE([map of 10 to 20 real to string], [[parse-type '{"key": "real", "value": "string", "min": 10, "max": 20}' ]], [[{"key":"real","max":20,"min":10,"value":"string"}]]) OVSDB_CHECK_POSITIVE([map of 20 or more string to real], [[parse-type '{"key": "string", "value": "real", "min": 20, "max": "unlimited"}' ]], [[{"key":"string","max":"unlimited","min":20,"value":"real"}]]) OVSDB_CHECK_NEGATIVE([map key type is required], [[parse-type '{"value": "integer"}' ]], [Required 'key' member is missing.])