/usr/src/openvswitch-1.4.0/tests/ovsdb-schema.at is in openvswitch-datapath-dkms 1.4.0-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | AT_BANNER([OVSDB -- schemas])
OVSDB_CHECK_POSITIVE_CPY([schema with valid refTables],
[[parse-schema \
'{"name": "mydb",
"version": "4.2.1",
"tables": {
"a": {
"columns": {
"map": {
"type": {
"key": {
"type": "uuid",
"refTable": "b"},
"value": {
"type": "uuid",
"refTable": "a"}}}}},
"b": {
"columns": {
"aRef": {
"type": {
"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"}}}}}},"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 \
'{"name": "mydb",
"tables": {
"a": {
"columns": {
"map": {
"type": {
"key": {
"type": "uuid",
"refTable": "c"},
"value": {
"type": "uuid",
"refTable": "a"}}}}},
"b": {
"columns": {
"aRef": {
"type": {
"key": {
"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]])
|