Skip to content

Commit

Permalink
ovsdb-data: Improve grammar in error message.
Browse files Browse the repository at this point in the history
"must have exactly one member" is much better than "must have 1 to 1
members".

Signed-off-by: Ben Pfaff <blp@ovn.org>
Acked-by: Justin Pettit <jpettit@ovn.org>
  • Loading branch information
blp committed Oct 4, 2018
1 parent 64107d5 commit bc9bbc4
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 48 deletions.
13 changes: 10 additions & 3 deletions lib/ovsdb-data.c
Expand Up @@ -1234,9 +1234,16 @@ ovsdb_datum_from_json__(struct ovsdb_datum *datum,

n = inner->array.n;
if (n < type->n_min || n > type->n_max) {
return ovsdb_syntax_error(json, NULL, "%s must have %u to "
"%u members but %"PRIuSIZE" are present",
class, type->n_min, type->n_max, n);
if (type->n_min == 1 && type->n_max == 1) {
return ovsdb_syntax_error(json, NULL, "%s must have exactly "
"one member but %"PRIuSIZE" "
"are present", class, n);
} else {
return ovsdb_syntax_error(json, NULL, "%s must have %u to "
"%u members but %"PRIuSIZE" are "
"present",
class, type->n_min, type->n_max, n);
}
}

datum->n = 0;
Expand Down
90 changes: 45 additions & 45 deletions tests/ovsdb-condition.at
Expand Up @@ -157,56 +157,56 @@ test-ovsdb: syntax "["u",">",["uuid","b10d28f7-af18-4a67-9e78-2a6394516c59"]]":
test-ovsdb: syntax "["u",">=",["uuid","9179ca6d-6d65-400a-b455-3ad92783a099"]]": syntax error: Type mismatch: ">=" operator may not be applied to column u of type uuid.
test-ovsdb: syntax "["u","<",["uuid","ad0fa355-8b84-4a36-a4b5-b2c1bfd91758"]]": syntax error: Type mismatch: "<" operator may not be applied to column u of type uuid.
test-ovsdb: syntax "["u","<=",["uuid","62315898-64e0-40b9-b26f-ff74225303e6"]]": syntax error: Type mismatch: "<=" operator may not be applied to column u of type uuid.
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["b",">",["set",[]]]": syntax error: Type mismatch: ">" operator may not be applied to column b of type boolean.
test-ovsdb: syntax "["b",">=",["set",[]]]": syntax error: Type mismatch: ">=" operator may not be applied to column b of type boolean.
test-ovsdb: syntax "["b","<",["set",[]]]": syntax error: Type mismatch: "<" operator may not be applied to column b of type boolean.
test-ovsdb: syntax "["b","<=",["set",[]]]": syntax error: Type mismatch: "<=" operator may not be applied to column b of type boolean.
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["b",">",["set",[]]]": syntax error: Type mismatch: ">" operator may not be applied to column b of type boolean.
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["s",">",["set",[]]]": syntax error: Type mismatch: ">" operator may not be applied to column s of type string.
test-ovsdb: syntax "["s",">=",["set",[]]]": syntax error: Type mismatch: ">=" operator may not be applied to column s of type string.
test-ovsdb: syntax "["s","<",["set",[]]]": syntax error: Type mismatch: "<" operator may not be applied to column s of type string.
test-ovsdb: syntax "["s","<=",["set",[]]]": syntax error: Type mismatch: "<=" operator may not be applied to column s of type string.
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["s",">",["set",[]]]": syntax error: Type mismatch: ">" operator may not be applied to column s of type string.
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["u",">",["set",[]]]": syntax error: Type mismatch: ">" operator may not be applied to column u of type uuid.
test-ovsdb: syntax "["u",">=",["set",[]]]": syntax error: Type mismatch: ">=" operator may not be applied to column u of type uuid.
test-ovsdb: syntax "["u","<",["set",[]]]": syntax error: Type mismatch: "<" operator may not be applied to column u of type uuid.
test-ovsdb: syntax "["u","<=",["set",[]]]": syntax error: Type mismatch: "<=" operator may not be applied to column u of type uuid.
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["u",">",["set",[]]]": syntax error: Type mismatch: ">" operator may not be applied to column u of type uuid.
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
]])
AT_CLEANUP

Expand Down Expand Up @@ -335,16 +335,16 @@ test-ovsdb: syntax "["u",">",["uuid","b10d28f7-af18-4a67-9e78-2a6394516c59"]]":
test-ovsdb: syntax "["u",">=",["uuid","9179ca6d-6d65-400a-b455-3ad92783a099"]]": syntax error: Type mismatch: ">=" operator may not be applied to column u of type set of up to 1 uuids.
test-ovsdb: syntax "["u","<",["uuid","ad0fa355-8b84-4a36-a4b5-b2c1bfd91758"]]": syntax error: Type mismatch: "<" operator may not be applied to column u of type set of up to 1 uuids.
test-ovsdb: syntax "["u","<=",["uuid","62315898-64e0-40b9-b26f-ff74225303e6"]]": syntax error: Type mismatch: "<=" operator may not be applied to column u of type set of up to 1 uuids.
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have 1 to 1 members but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["set",[]]": syntax error: set must have exactly one member but 0 are present
test-ovsdb: syntax "["b",">",["set",[]]]": syntax error: Type mismatch: ">" operator may not be applied to column b of type set of up to 1 booleans.
test-ovsdb: syntax "["b",">=",["set",[]]]": syntax error: Type mismatch: ">=" operator may not be applied to column b of type set of up to 1 booleans.
test-ovsdb: syntax "["b","<",["set",[]]]": syntax error: Type mismatch: "<" operator may not be applied to column b of type set of up to 1 booleans.
Expand Down

0 comments on commit bc9bbc4

Please sign in to comment.