//don't clear tabidx void cio_clear(cio *io) { size_t i; cstr_clear(io->rbuf); cstr_clear(io->wbuf); for(i = 0; i < io->argc; i++) { obj_decr(io->argv[i]); } if(io->argv != NULL) jfree(io->argv); io->mask = 0; io->reqtype = REQ_TYPE_NORMAL; io->argc = 0; io->nbulk = 0; io->bulk_len = 0; io->argv = NULL; io->flag = 0; io->wcount = 0; }
int test_copy() { int failures = 0; const int test_count = 4; cstring *Vojto = cstr_create_str("Ahoj Karle"); cstring *Albert = copy(Vojto, 2, 6); printf("\n*** Testing buildin copy ***\n"); if (strcmp(Albert->str, "hoj Ka") != 0) { print_cstr_all(Albert); failures++; } cstr_clear(Albert); Albert = copy(Vojto, 1, 2); if (strcmp(Albert->str, "Ah") != 0) { print_cstr_all(Albert); failures++; } cstr_clear(Albert); Albert = copy(Vojto, 6, 2); if (strcmp(Albert->str, "Ka") != 0) { print_cstr_all(Albert); failures++; } cstr_clear(Vojto); cstr_clear(Albert); Albert = copy(Vojto, 1, 10); if (strcmp(Albert->str, "") != 0) { print_cstr_all(Albert); failures++; } print_result(test_count, failures); return failures; }
int test_sort() { int failures = 0; const int test_count = 4; printf("\n*** Testing buildin sort ***\n"); cstring *Vojto = cstr_create_str("abcABCdefDEF"); cstring *Albert = Vojto; sort(&Albert); if (strcmp(Albert->str, "ABCDEFabcdef") != 0) { print_cstr_all(Vojto); failures++; } cstr_clear(Vojto); cstr_append_str(Vojto, "123987"); cstring *Pavel = Vojto; sort(&Pavel); if ((strcmp(Pavel->str, "123789") != 0)) { print_cstr_all(Vojto); failures++; } cstr_clear(Vojto); cstr_append_str(Vojto, "1234abCDefGH"); cstring *Adam = Vojto; sort(&Adam); if ((strcmp(Adam->str, "1234CDGHabef") != 0)) { print_cstr_all(Vojto); failures++; } print_result(test_count, failures); return failures; }
/** * @brief Assigns cstring to cstring. * @param s poiter to cstring where will be cstr assigned. * @param cstr cstring that will be assigned. * @return cstring * * Uses static function @see append implemented in cstring.c, more details * written there. */ cstring *cstr_assign_cstr(cstring *s, cstring const *cstr) { if (!s) { debug("Cstring where to assigne is not given.\n"); return NULL; } if (!cstr) { debug("Cstring which will be assigned is not given.\n"); return NULL; } cstr_clear(s); return append(s, cstr->str, cstr->size); }
cstring *cstr_read_line(cstring *cstr) { if(!cstr) { debug("cstirng not given.\n"); return NULL; } int ch; cstr_clear(cstr); while(1) { ch = getchar(); if(ch == '\n' || ch == EOF) return cstr; cstr_append_chr(cstr, ch); } }
int main(int argc, char *argv[]) { cli_init(); log_init(); thread_init(); cmd_init(); dev_addr_mgr_init(); addr_sock_init(); socket_init(); dev_router_init(); cli_commands_init(); broadcast_msg_t msg; dev_addr_mgr_add_support_dev_type(1); dev_addr_mgr_set_network_type(NETWORK_TYPE_CENTER); dev_addr_mgr_set_addr_mac(0x89ABCDE0); dev_router_set_mac_local(0x89ABCDE0); #ifdef TEST_CLIENT ex_memzero_one(&msg); strcpy(msg.dev_name, "1004"); msg.router_list_lens[0] = 3; msg.router_list_lens[1] = 3; msg.router_list_lens[2] = 0; msg.router_list_lens[3] = 0; msg.router_cnt = 7; msg.router_list_cnt = 2; msg.network_nodes[0].dev_type = 1; msg.network_nodes[0].addr_mac = 0x89ABCDE0; msg.network_nodes[0].subnet_cnt = 4; msg.network_nodes[0].network_type = NETWORK_TYPE_ROUTER; strcpy(msg.network_nodes[0].dev_name, "1004"); msg.network_nodes[1].dev_type = 1; msg.network_nodes[1].addr_mac = 0x89ABCDE1; msg.network_nodes[1].subnet_cnt = 4; msg.network_nodes[1].network_type = NETWORK_TYPE_ROUTER; strcpy(msg.network_nodes[1].dev_name, "1003"); msg.network_nodes[2].dev_type = 1; msg.network_nodes[2].addr_mac = 0x89ABCDE2; msg.network_nodes[2].subnet_cnt = 4; msg.network_nodes[2].network_type = NETWORK_TYPE_ROUTER; strcpy(msg.network_nodes[2].dev_name, "1002"); msg.network_nodes[3].dev_type = 1; msg.network_nodes[3].addr_mac = 0x89ABCDE3; msg.network_nodes[3].subnet_cnt = 4; msg.network_nodes[3].network_type = NETWORK_TYPE_ROUTER; strcpy(msg.network_nodes[3].dev_name, "1001"); msg.network_nodes[4].dev_type = 1; msg.network_nodes[4].addr_mac = 0x89ABCDE4; msg.network_nodes[4].subnet_cnt = 4; msg.network_nodes[4].network_type = NETWORK_TYPE_ROUTER; strcpy(msg.network_nodes[4].dev_name, "1005"); msg.network_nodes[5].dev_type = 1; msg.network_nodes[5].addr_mac = 0x89ABCDE5; msg.network_nodes[5].subnet_cnt = 4; msg.network_nodes[5].network_type = NETWORK_TYPE_ROUTER; strcpy(msg.network_nodes[5].dev_name, "1006"); msg.network_nodes[6].dev_type = 1; msg.network_nodes[6].addr_mac = 0x89ABCDE6; msg.network_nodes[6].subnet_cnt = 4; msg.network_nodes[6].network_type = NETWORK_TYPE_ROUTER; strcpy(msg.network_nodes[6].dev_name, "1007"); #endif socket_listen_async(50002); socket_listen_cli(49999); socket_recv_start(); #ifdef TEST_SERVER socket_bc_tx_start("test", 50000, 50001, 50002); #endif #ifdef TEST_CLIENT socket_bc_rx_start("test", 50000, 50001, &msg); #endif #if 0 cstr *json = cstr_new(); int fd = 0; fd = socket_cli_send_request("127.0.0.1", 49999, "test"); socket_cli_recv_response(fd, json); cstr_clear(json); fd = socket_cli_send_request("127.0.0.1", 49999, "test f**k"); socket_cli_recv_response(fd, json); cstr_clear(json); fd = socket_cli_send_request("127.0.0.1", 49999, "f**k f**k f**k you test f**k"); socket_cli_recv_response(fd, json); cstr_free(json); #endif cli_loop(); dev_addr_mgr_release(); socket_release(); cmd_release(); thread_release(); log_release(); cli_release(); #if 0 cli_cmd_t cmd; int i = 0; command_init(&cmd, argv[0], "0.0.1"); command_option(&cmd, "-v", "--verbose", "enable verbose stuff", verbose); command_option(&cmd, "-r", "--required <arg>", "required arg", required); command_option(&cmd, "-o", "--optional [arg]", "optional arg", optional); command_parse(&cmd, argc, argv); printf("additional args:\n"); for (i = 0; i < cmd.argc; ++i) { printf(" - '%s'\n", cmd.argv[i]); } command_free(&cmd); #endif return 0; }
/** * @brief Assigns string to cstring. * @param s poiter to cstring where will be str assigned. * @param str string that will be assigned. * @return cstring * * Uses static function @see append implemented in cstring.c, more details * written there. */ cstring *cstr_assign_str(cstring *s, char const *str) { cstr_clear(s); return append(s, str, strlen(str)); }