2 // Created by jlr on 4/9/18.
10 #include <mon_internal.h>
12 #define JSON_DUMP_OPTS 0
14 static char *reconfigure(MON_RESP_CODE code, const char *message)
17 MON_RESP *resp = NULL;
18 json_t *resp_json = NULL;
21 req = mon_req_new(NULL, MON_CMD_RECONFIGURE);
24 resp = mon_resp_new(NULL, req, code, message, NULL);
27 resp_json = mon_resp_encode(resp);
30 result = json_dumps(resp_json, JSON_DUMP_OPTS);
33 json_decref(resp_json);
39 static char *reconfigure_success()
41 return reconfigure(MON_RESP_SUCCESS, "success");
44 static char *reconfigure_error()
46 return reconfigure(MON_RESP_ERROR, "error");
49 static char *show_success()
52 MON_RESP *resp = NULL;
53 json_t *resp_json = NULL;
54 json_t *payload = NULL;
57 req = mon_req_new(NULL, MON_CMD_SHOW);
58 // Only need the command to be set in req, don't actually need the options
61 payload = json_object();
63 assert(! json_object_set_new(payload,
64 mon_opt_type_to_string(OPT_TYPE_SHOW_VERSION),
65 json_string("1.2.3-4")));
66 assert(! json_object_set_new(payload,
67 mon_opt_type_to_string(OPT_TYPE_SHOW_SERIAL),
68 json_integer(1234567890)));
69 assert(! json_object_set_new(payload,
70 mon_opt_type_to_string(OPT_TYPE_SHOW_SERIAL),
71 json_integer(86400)));
72 assert(! json_object_set_new(payload,
73 mon_opt_type_to_string(OPT_TYPE_SHOW_TID_REQ_PENDING),
75 assert(! json_object_set_new(payload,
76 mon_opt_type_to_string(OPT_TYPE_SHOW_TID_REQ_COUNT),
79 resp = mon_resp_new(NULL, req, MON_RESP_SUCCESS, "success", payload);
82 resp_json = mon_resp_encode(resp);
85 result = json_dumps(resp_json, JSON_DUMP_OPTS);
88 json_decref(resp_json);
94 static char *read_file(const char *filename)
96 FILE *f = fopen(filename, "r");
99 ssize_t n = getline(&s, &nn, f);
102 if( (n > 0) && (s[n-1] == '\n'))
108 int run_test(const char *filename, char *(generator)())
111 char *expected = NULL;
113 // Test reconfigure command
115 expected = read_file(filename);
117 assert(strcmp(expected, s) == 0);
126 assert(run_test("resp_reconfigure_success.test", reconfigure_success));
127 assert(run_test("resp_reconfigure_error.test", reconfigure_error));
128 assert(run_test("resp_show_success.test", show_success));