X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=tests%2Fovsdb-schema.at;h=00da808391d64c0a77c16868078b14eb6f940bdd;hb=7fa0f73fb284b4406bcd085ee62552891b3fa6cd;hp=008cc43167ef8ffa839596f40dbfacced3aaca9c;hpb=991559357f6a03c3a5b70c053c8c2554aa8d5ee4;p=sliver-openvswitch.git diff --git a/tests/ovsdb-schema.at b/tests/ovsdb-schema.at index 008cc4316..00da80839 100644 --- a/tests/ovsdb-schema.at +++ b/tests/ovsdb-schema.at @@ -3,6 +3,7 @@ AT_BANNER([OVSDB -- schemas]) OVSDB_CHECK_POSITIVE_CPY([schema with valid refTables], [[parse-schema \ '{"name": "mydb", + "version": "4.2.1", "tables": { "a": { "columns": { @@ -21,7 +22,51 @@ OVSDB_CHECK_POSITIVE_CPY([schema with valid refTables], "key": { "type": "uuid", "refTable": "a"}}}}}}}']], - [[{"name":"mydb","tables":{"a":{"columns":{"map":{"type":{"key":{"refTable":"b","type":"uuid"},"value":{"refTable":"a","type":"uuid"}}}}},"b":{"columns":{"aRef":{"type":{"key":{"refTable":"a","type":"uuid"}}}}}}}]]) + [[{"name":"mydb","tables":{"a":{"columns":{"map":{"type":{"key":{"refTable":"b","type":"uuid"},"value":{"refTable":"a","type":"uuid"}}}}},"b":{"columns":{"aRef":{"type":{"key":{"refTable":"a","type":"uuid"}}}}}},"version":"4.2.1"}]]) + +dnl Ephemeral strong references to root set tables are OK. +dnl Ephemeral strong references to non-root set tables are forced to be +dnl persistent. +OVSDB_CHECK_POSITIVE_CPY([schema with ephemeral strong references], + [[parse-schema \ + '{"name": "mydb", + "version": "4.2.1", + "tables": { + "a": { + "columns": { + "x": { + "type": { + "key": { + "type": "uuid", + "refTable": "b"}}, + "ephemeral": true}, + "y": { + "type": { + "key": { + "type": "uuid", + "refTable": "a"}}, + "ephemeral": true}}}, + "b": { + "columns": { + "aRef": { + "type": { + "key": { + "type": "uuid", + "refTable": "a"}}}}, + "isRoot": true}}}']], + [[{"name":"mydb","tables":{"a":{"columns":{"x":{"ephemeral":true,"type":{"key":{"refTable":"b","type":"uuid"}}},"y":{"type":{"key":{"refTable":"a","type":"uuid"}}}}},"b":{"columns":{"aRef":{"type":{"key":{"refTable":"a","type":"uuid"}}}},"isRoot":true}},"version":"4.2.1"}]]) + +dnl Schemas without version numbers are accepted for backward +dnl compatibility, but this is a deprecated feature. +OVSDB_CHECK_POSITIVE_CPY([schema without version number], + [[parse-schema \ + '{"name": "mydb", + "tables": { + "x": { + "columns": { + "y": { + "type": "integer"}}}}}']], + [{"name":"mydb","tables":{"x":{"columns":{"y":{"type":"integer"}}}}}]) OVSDB_CHECK_NEGATIVE_CPY([schema with invalid refTables], [[parse-schema \ @@ -45,3 +90,14 @@ OVSDB_CHECK_NEGATIVE_CPY([schema with invalid refTables], "type": "uuid", "refTable": "a"}}}}}}}']], [[syntax error: column map key refers to undefined table c]]) + +OVSDB_CHECK_NEGATIVE_CPY([schema with invalid version number], + [[parse-schema \ + '{"name": "mydb", + "tables": { + "x": { + "columns": { + "y": { + "type": "integer"}}}}, + "version": "xxx"}']], + [[schema version "xxx" not in format x.y.z]])