X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Ftest-ovsdb.c;h=a1ad2cbc85655f49339ad540b78784380e6bc278;hb=9d3ee0bc635063f277754d9d31fe634967f8473c;hp=e151dd8bcad848063b39b5da1f1e76c5d3f9c0f9;hpb=e317253b1391c7b0a84c8dd51eaf1f3cc16eff56;p=openvswitch diff --git a/tests/test-ovsdb.c b/tests/test-ovsdb.c index e151dd8b..a1ad2cbc 100644 --- a/tests/test-ovsdb.c +++ b/tests/test-ovsdb.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2010, 2011 Nicira Networks. + * Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -1258,7 +1258,7 @@ do_execute(int argc OVS_UNUSED, char *argv[]) char *s; params = parse_json(argv[i]); - result = ovsdb_execute(db, params, 0, NULL); + result = ovsdb_execute(db, NULL, params, 0, NULL); s = json_to_string(result, JSSF_SORT); printf("%s\n", s); free(s); @@ -1779,7 +1779,7 @@ idl_set(struct ovsdb_idl *idl, char *commands, int step) struct idltest_simple *s; if (!arg1 || arg2) { - ovs_fatal(0, "\"set\" command requires 1 argument"); + ovs_fatal(0, "\"insert\" command requires 1 argument"); } s = idltest_simple_insert(txn); @@ -1788,12 +1788,12 @@ idl_set(struct ovsdb_idl *idl, char *commands, int step) const struct idltest_simple *s; if (!arg1 || arg2) { - ovs_fatal(0, "\"set\" command requires 1 argument"); + ovs_fatal(0, "\"delete\" command requires 1 argument"); } s = idltest_find_simple(idl, atoi(arg1)); if (!s) { - ovs_fatal(0, "\"set\" command asks for nonexistent " + ovs_fatal(0, "\"delete\" command asks for nonexistent " "i=%d", atoi(arg1)); } idltest_simple_delete(s); @@ -1825,10 +1825,19 @@ idl_set(struct ovsdb_idl *idl, char *commands, int step) arg2); } } else if (!strcmp(name, "increment")) { - if (!arg2 || arg3) { - ovs_fatal(0, "\"increment\" command requires 2 arguments"); + const struct idltest_simple *s; + + if (!arg1 || arg2) { + ovs_fatal(0, "\"increment\" command requires 1 argument"); } - ovsdb_idl_txn_increment(txn, arg1, arg2, NULL); + + s = idltest_find_simple(idl, atoi(arg1)); + if (!s) { + ovs_fatal(0, "\"set\" command asks for nonexistent " + "i=%d", atoi(arg1)); + } + + ovsdb_idl_txn_increment(txn, &s->header_, &idltest_simple_col_i); increment = true; } else if (!strcmp(name, "abort")) { ovsdb_idl_txn_abort(txn); @@ -1871,8 +1880,8 @@ do_idl(int argc, char *argv[]) if (argc > 2) { struct stream *stream; - error = stream_open_block(jsonrpc_stream_open(argv[1], &stream), - &stream); + error = stream_open_block(jsonrpc_stream_open(argv[1], &stream, + DSCP_DEFAULT), &stream); if (error) { ovs_fatal(error, "failed to connect to \"%s\"", argv[1]); } @@ -1893,7 +1902,11 @@ do_idl(int argc, char *argv[]) arg++; } else { /* Wait for update. */ - while (ovsdb_idl_get_seqno(idl) == seqno && !ovsdb_idl_run(idl)) { + for (;;) { + ovsdb_idl_run(idl); + if (ovsdb_idl_get_seqno(idl) != seqno) { + break; + } jsonrpc_run(rpc); ovsdb_idl_wait(idl); @@ -1916,7 +1929,7 @@ do_idl(int argc, char *argv[]) substitute_uuids(json, symtab); request = jsonrpc_create_request("transact", json, NULL); error = jsonrpc_transact_block(rpc, request, &reply); - if (error) { + if (error || reply->error) { ovs_fatal(error, "jsonrpc transaction failed"); } printf("%03d: ", step++); @@ -1933,7 +1946,11 @@ do_idl(int argc, char *argv[]) if (rpc) { jsonrpc_close(rpc); } - while (ovsdb_idl_get_seqno(idl) == seqno && !ovsdb_idl_run(idl)) { + for (;;) { + ovsdb_idl_run(idl); + if (ovsdb_idl_get_seqno(idl) != seqno) { + break; + } ovsdb_idl_wait(idl); poll_block(); }