X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=tests%2Ftest-ovsdb.c;h=0d7e8c5800a91214ec71d80ab9efe4a71d6b717e;hb=27b6cec086eebdd34bc8526901ea6b2a52119f17;hp=1c1116e1f8cad95ef23b10ca60009b11904171d4;hpb=958ac03a3f785303399316eda76362d26adb09d4;p=openvswitch diff --git a/tests/test-ovsdb.c b/tests/test-ovsdb.c index 1c1116e1..0d7e8c58 100644 --- a/tests/test-ovsdb.c +++ b/tests/test-ovsdb.c @@ -139,6 +139,9 @@ usage(void) " print JSON ATOMs in sorted order\n" " parse-data TYPE DATUM...\n" " parse JSON DATUMs as data of given TYPE, and re-serialize\n" + " parse-data-unique TYPE DATUM...\n" + " parse JSON DATUMs as data of given TYPE, eliminating\n" + " duplicate keys, and re-serialize\n" " parse-data-strings TYPE DATUM...\n" " parse string DATUMs as data of given TYPE, and re-serialize\n" " parse-column NAME OBJECT\n" @@ -478,7 +481,12 @@ do_parse_atom_strings(int argc, char *argv[]) } static void -do_parse_data(int argc, char *argv[]) +do_parse_data__(int argc, char *argv[], + struct ovsdb_error * + (*parse)(struct ovsdb_datum *datum, + const struct ovsdb_type *type, + const struct json *json, + struct ovsdb_symbol_table *symtab)) { struct ovsdb_type type; struct json *json; @@ -492,7 +500,7 @@ do_parse_data(int argc, char *argv[]) struct ovsdb_datum datum; json = unbox_json(parse_json(argv[i])); - check_ovsdb_error(ovsdb_datum_from_json(&datum, &type, json, NULL)); + check_ovsdb_error(parse(&datum, &type, json, NULL)); json_destroy(json); print_and_free_json(ovsdb_datum_to_json(&datum, &type)); @@ -502,6 +510,18 @@ do_parse_data(int argc, char *argv[]) ovsdb_type_destroy(&type); } +static void +do_parse_data(int argc, char *argv[]) +{ + do_parse_data__(argc, argv, ovsdb_datum_from_json); +} + +static void +do_parse_data_unique(int argc, char *argv[]) +{ + do_parse_data__(argc, argv, ovsdb_datum_from_json_unique); +} + static void do_parse_data_strings(int argc, char *argv[]) { @@ -1890,6 +1910,7 @@ static struct command all_commands[] = { { "parse-atoms", 2, INT_MAX, do_parse_atoms }, { "parse-atom-strings", 2, INT_MAX, do_parse_atom_strings }, { "parse-data", 2, INT_MAX, do_parse_data }, + { "parse-data-unique", 2, INT_MAX, do_parse_data_unique }, { "parse-data-strings", 2, INT_MAX, do_parse_data_strings }, { "sort-atoms", 2, 2, do_sort_atoms }, { "parse-column", 2, 2, do_parse_column },