main(int argc, char *argv[])
{
set_program_name(argv[0]);
- vlog_init();
parse_options(argc, argv);
run_command(argc - optind, argv + optind, all_commands);
return 0;
" 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"
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[])
{
size_t n_classes;
struct json *json;
int exit_code = 0;
- size_t i, j, k;
+ size_t i;
/* Parse table schema, create table. */
json = unbox_json(parse_json(argv[1]));
for (i = 0; i < json->u.array.n; i++) {
struct ovsdb_row_set results;
struct ovsdb_condition cnd;
+ size_t j;
check_ovsdb_error(ovsdb_condition_from_json(ts, json->u.array.elems[i],
NULL, &cnd));
ovsdb_row_set_init(&results);
ovsdb_query_distinct(table, &cnd, &columns, &results);
for (j = 0; j < results.n_rows; j++) {
+ size_t k;
+
for (k = 0; k < n_rows; k++) {
if (uuid_equals(ovsdb_row_get_uuid(results.rows[j]),
&rows[k].uuid)) {
n_rows = hmap_count(&do_transact_table->rows);
rows = xmalloc(n_rows * sizeof *rows);
i = 0;
- HMAP_FOR_EACH (row, struct ovsdb_row, hmap_node,
- &do_transact_table->rows) {
+ HMAP_FOR_EACH (row, hmap_node, &do_transact_table->rows) {
rows[i++] = row;
}
assert(i == n_rows);
"i=%d", atoi(arg1));
}
idltest_simple_delete(s);
+ } else if (!strcmp(name, "verify")) {
+ const struct idltest_simple *s;
+
+ if (!arg2 || arg3) {
+ ovs_fatal(0, "\"verify\" command requires 2 arguments");
+ }
+
+ s = idltest_find_simple(idl, atoi(arg1));
+ if (!s) {
+ ovs_fatal(0, "\"verify\" command asks for nonexistent "
+ "i=%d", atoi(arg1));
+ }
+
+ if (!strcmp(arg2, "i")) {
+ idltest_simple_verify_i(s);
+ } else if (!strcmp(arg2, "b")) {
+ idltest_simple_verify_b(s);
+ } else if (!strcmp(arg2, "s")) {
+ idltest_simple_verify_s(s);
+ } else if (!strcmp(arg2, "u")) {
+ idltest_simple_verify_s(s);
+ } else if (!strcmp(arg2, "r")) {
+ idltest_simple_verify_r(s);
+ } else {
+ ovs_fatal(0, "\"verify\" command asks for unknown column %s",
+ arg2);
+ }
} else if (!strcmp(name, "increment")) {
if (!arg2 || arg3) {
- ovs_fatal(0, "\"set\" command requires 2 arguments");
+ ovs_fatal(0, "\"increment\" command requires 2 arguments");
}
ovsdb_idl_txn_increment(txn, arg1, arg2, NULL);
increment = true;
idltest_init();
- idl = ovsdb_idl_create(argv[1], &idltest_idl_class);
+ idl = ovsdb_idl_create(argv[1], &idltest_idl_class, true);
if (argc > 2) {
struct stream *stream;
for (i = 2; i < argc; i++) {
char *arg = argv[i];
struct jsonrpc_msg *request, *reply;
- int error;
if (*arg == '+') {
/* The previous transaction didn't change anything. */
{ "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 },