X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=tests%2Ftest-jsonrpc.c;h=feac0b0afdec1adb8524ac043f865bb068dafcdc;hb=fcde56f53c701d6d49d912a4f6aa8da2e9c0cb94;hp=616ff2e0491e0bfcd10936be022e0454c87e3617;hpb=07fc4ed3410006950012aef8d78f017c5b833e98;p=cascardo%2Fovs.git diff --git a/tests/test-jsonrpc.c b/tests/test-jsonrpc.c index 616ff2e04..feac0b0af 100644 --- a/tests/test-jsonrpc.c +++ b/tests/test-jsonrpc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc. + * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,38 +15,39 @@ */ #include - +#undef NDEBUG #include "jsonrpc.h" - #include #include #include #include #include - #include "command-line.h" #include "daemon.h" #include "json.h" +#include "ovstest.h" #include "poll-loop.h" #include "stream-ssl.h" #include "stream.h" #include "timeval.h" #include "util.h" -#include "vlog.h" +#include "openvswitch/vlog.h" -static struct command all_commands[]; - -static void usage(void) NO_RETURN; +OVS_NO_RETURN static void usage(void); static void parse_options(int argc, char *argv[]); +static struct ovs_cmdl_command *get_all_commands(void); -int -main(int argc, char *argv[]) +static void +test_jsonrpc_main(int argc, char *argv[]) { - proctitle_init(argc, argv); + struct ovs_cmdl_context ctx = { .argc = 0, }; + ovs_cmdl_proctitle_init(argc, argv); set_program_name(argv[0]); + service_start(&argc, &argv); parse_options(argc, argv); - run_command(argc - optind, argv + optind, all_commands); - return 0; + ctx.argc = argc - optind; + ctx.argv = argv + optind; + ovs_cmdl_run_command(&ctx, get_all_commands()); } static void @@ -64,7 +65,7 @@ parse_options(int argc, char *argv[]) STREAM_SSL_LONG_OPTIONS, {NULL, 0, NULL, 0}, }; - char *short_options = long_options_to_short_options(long_options); + char *short_options = ovs_cmdl_long_options_to_short_options(long_options); for (;;) { int c = getopt_long(argc, argv, short_options, long_options, NULL); @@ -168,7 +169,7 @@ handle_rpc(struct jsonrpc *rpc, struct jsonrpc_msg *msg, bool *done) } static void -do_listen(int argc OVS_UNUSED, char *argv[]) +do_listen(struct ovs_cmdl_context *ctx) { struct pstream *pstream; struct jsonrpc **rpcs; @@ -176,9 +177,9 @@ do_listen(int argc OVS_UNUSED, char *argv[]) bool done; int error; - error = jsonrpc_pstream_open(argv[1], &pstream, DSCP_DEFAULT); + error = jsonrpc_pstream_open(ctx->argv[1], &pstream, DSCP_DEFAULT); if (error) { - ovs_fatal(error, "could not listen on \"%s\"", argv[1]); + ovs_fatal(error, "could not listen on \"%s\"", ctx->argv[1]); } daemonize(); @@ -251,7 +252,7 @@ do_listen(int argc OVS_UNUSED, char *argv[]) } static void -do_request(int argc OVS_UNUSED, char *argv[]) +do_request(struct ovs_cmdl_context *ctx) { struct jsonrpc_msg *msg; struct jsonrpc *rpc; @@ -261,18 +262,18 @@ do_request(int argc OVS_UNUSED, char *argv[]) char *string; int error; - method = argv[2]; - params = parse_json(argv[3]); + method = ctx->argv[2]; + params = parse_json(ctx->argv[3]); msg = jsonrpc_create_request(method, params, NULL); string = jsonrpc_msg_is_valid(msg); if (string) { ovs_fatal(0, "not a valid JSON-RPC request: %s", string); } - error = stream_open_block(jsonrpc_stream_open(argv[1], &stream, + error = stream_open_block(jsonrpc_stream_open(ctx->argv[1], &stream, DSCP_DEFAULT), &stream); if (error) { - ovs_fatal(error, "could not open \"%s\"", argv[1]); + ovs_fatal(error, "could not open \"%s\"", ctx->argv[1]); } rpc = jsonrpc_open(stream); @@ -291,7 +292,7 @@ do_request(int argc OVS_UNUSED, char *argv[]) } static void -do_notify(int argc OVS_UNUSED, char *argv[]) +do_notify(struct ovs_cmdl_context *ctx) { struct jsonrpc_msg *msg; struct jsonrpc *rpc; @@ -301,18 +302,18 @@ do_notify(int argc OVS_UNUSED, char *argv[]) char *string; int error; - method = argv[2]; - params = parse_json(argv[3]); + method = ctx->argv[2]; + params = parse_json(ctx->argv[3]); msg = jsonrpc_create_notify(method, params); string = jsonrpc_msg_is_valid(msg); if (string) { ovs_fatal(0, "not a JSON RPC-valid notification: %s", string); } - error = stream_open_block(jsonrpc_stream_open(argv[1], &stream, + error = stream_open_block(jsonrpc_stream_open(ctx->argv[1], &stream, DSCP_DEFAULT), &stream); if (error) { - ovs_fatal(error, "could not open \"%s\"", argv[1]); + ovs_fatal(error, "could not open \"%s\"", ctx->argv[1]); } rpc = jsonrpc_open(stream); @@ -324,15 +325,23 @@ do_notify(int argc OVS_UNUSED, char *argv[]) } static void -do_help(int argc OVS_UNUSED, char *argv[] OVS_UNUSED) +do_help(struct ovs_cmdl_context *ctx OVS_UNUSED) { usage(); } -static struct command all_commands[] = { - { "listen", 1, 1, do_listen }, - { "request", 3, 3, do_request }, - { "notify", 3, 3, do_notify }, - { "help", 0, INT_MAX, do_help }, - { NULL, 0, 0, NULL }, +static struct ovs_cmdl_command all_commands[] = { + { "listen", NULL, 1, 1, do_listen }, + { "request", NULL, 3, 3, do_request }, + { "notify", NULL, 3, 3, do_notify }, + { "help", NULL, 0, INT_MAX, do_help }, + { NULL, NULL, 0, 0, NULL }, }; + +static struct ovs_cmdl_command * +get_all_commands(void) +{ + return all_commands; +} + +OVSTEST_REGISTER("test-jsonrpc", test_jsonrpc_main);