static int test_mangle_option(int argc, char **argv, const char *option, int hasval) { int ac = argc, i = 0, ret; char *av[MAX_OPTS]; const char *useless = NULL; assert(argc <= MAX_OPTS); for (i = 0; i < argc; i++) { av[i] = argv[i]; } ret = tc_mangle_cmdline(&argc, &argv, option, (hasval) ?(&useless) :NULL); tc_info("mangling: %i", ret); if (ret != 0) { DUMP_OPTS(argc, argv); if (ac != argc) { tc_warn("missing argument (argc not changed)"); return 1; } for (i = 0; i < argc; i++) { if (av[i] != argv[i] || strcmp(av[i], argv[i]) != 0) { tc_warn("argument diversion (%s VS %s @ %i)", av[i], argv[i], i); return 1; } } if (!in_set(option, (const char **)argv, argc)) { tc_warn("option still present"); return 1; } } else { int na = ac - ((hasval) ?2 :1); DUMP_OPTS(argc, argv); if (na != argc) { tc_warn("argument number mismatch (expected %i|got %i)", na, argc); return 1; } if (in_set(option, (const char **)argv, argc)) { tc_warn("option still present"); return 1; } for (i = 0; i < ac; i++) { if (!in_set(argv[i], (const char **)av, ac)) { tc_warn("missing argument: %s", argv[i]); return 1; } } } return 0; }
static int test_alloc(int size) { int ret = 0; uint8_t *mem = tc_bufalloc(size); if (mem == NULL) { tc_error("test_alloc(%i): FAILED (mem == NULL)", size); ret = 1; } else { tc_info("test_alloc(%i): PASSED", size); ret = 1; } tc_buffree(mem); return ret; }
const std::vector<Uint32>& tc_info(const std::string& name) { std::map<std::string, std::vector<Uint32> >::const_iterator i = team_rgb_colors.find(name); if(i == team_rgb_colors.end()) { std::vector<Uint32> temp; if(!string2rgb(name, temp)) { static std::vector<Uint32> stv; ERR_NG << "Invalid color palette: " << name << "\n"; return stv; } team_rgb_colors.insert(std::make_pair(name,temp)); return tc_info(name); } return i->second; }
int tc_xi_socket_basic() { xint32 t = 1; xchar *tcname = "xi_socket.h"; xint32 ret; xint32 i; xi_sock_addr_t qaddr[10]; xi_thread_t tid_svr; xi_thread_t tid_clt; tc_info(); log_print(XDLOG, "[%s:%02d] get_addr(www.daum.net) ######\n", tcname, t++); ret = xi_socket_get_addr("daum.net", qaddr, 10); if (ret < 0) { log_print(XDLOG, " - result : not found!!!\n\n"); } log_print(XDLOG, " - result : pass. (www.daum.net = \n"); for (i = 0; i < ret; i++) { log_print(XDLOG, " %s\n", qaddr[i].host); } log_print(XDLOG, " )\n\n"); log_print(XDLOG, "[%s:%02d] server/client threads #######\n", tcname, t++); log_print(XDLOG, " server) create listener socket\n"); log_print(XDLOG, " client) create connect socket\n"); log_print(XDLOG, " => they will connect and communicate\n"); log_print(XDLOG, " => main thread will waiting....\n\n"); xi_thread_create(&tid_svr, "TC_SVR_THREAD", tc_server_thread, NULL, 256 * 1024, XCFG_THREAD_PRIOR_NORM); xi_thread_sleep(50); xi_thread_create(&tid_clt, "TC_CLT_THREAD", tc_client_thread, NULL, 256 * 1024, XCFG_THREAD_PRIOR_NORM); _g_trun = TRUE; while (_g_trun) { xi_thread_sleep(300); } log_print(XDLOG, "============ DONE [xi_socket.h - basic] ============\n\n"); return _g_ecode; }
xint32 tc_xi_select_echosrv() { xint32 ret; xint32 srvsock; xi_sock_addr_t lsnaddr = { XI_SOCK_FAMILY_INET, XI_SOCK_TYPE_STREAM, XI_SOCK_PROTO_TCP, { '\0' }, 56789 }; tc_info(); // setup a listen socket srvsock = xi_socket_open(lsnaddr.family, lsnaddr.type, lsnaddr.proto); if (srvsock < 0) { log_error(XDLOG, "Failed to creat a socket!\n"); return -1; } // set socket options ret = xi_socket_opt_set(srvsock, XI_SOCK_OPT_REUSEADDR, TRUE); if (ret < 0) { log_error(XDLOG, "Failed to setsocketopt: %d\n", ret); return -1; } // setup a local addr xi_strcpy(lsnaddr.host, "0.0.0.0"); // bind to the listen socket ret = xi_socket_bind(srvsock, lsnaddr); if (ret < 0) { log_error(XDLOG, "Failed to bind a socket: %d\n", ret); return -1; } // listen ret = xi_socket_listen(srvsock, 10); if (ret < 0) { log_error(XDLOG, "Failed to listen to socket: %d\n", ret); return -1; } // start a server return tc_start_server(srvsock); }
int tc_xi_ctype() { xint32 t = 1; xchar *tcname = "xi_ctype.h"; xint32 ret; xchar ch; tc_info(); log_print(XDLOG, "[%s:%02d] xi_isalnum('1') #############\n", tcname, t++); ret = xi_isalnum('1'); if (!ret) { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] xi_isalpha('1') #############\n", tcname, t++); ret = xi_isalpha('1'); if (ret) { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] xi_isascii('1') #############\n", tcname, t++); ret = xi_isascii('1'); if (!ret) { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] xi_iscntrl('1') #############\n", tcname, t++); ret = xi_iscntrl('1'); if (ret) { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] xi_isdigit('1') #############\n", tcname, t++); ret = xi_isdigit('1'); if (!ret) { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] xi_isgraph('1') #############\n", tcname, t++); ret = xi_isgraph('1'); if (!ret) { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] xi_islower('a') #############\n", tcname, t++); ret = xi_islower('a'); if (!ret) { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] xi_isprint('a') #############\n", tcname, t++); ret = xi_isalnum('a'); if (!ret) { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] xi_ispunct('a') #############\n", tcname, t++); ret = xi_ispunct('a'); if (ret) { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] xi_isspace(' ') #############\n", tcname, t++); ret = xi_isspace(' '); if (!ret) { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] xi_isupper('a') #############\n", tcname, t++); ret = xi_isupper('a'); if (ret) { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] xi_isxdigit('a') #############\n", tcname, t++); ret = xi_isxdigit('a'); if (!ret) { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] xi_toascii('1') #############\n", tcname, t++); ret = xi_toascii('1'); if (ret != '1') { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] xi_tolower('A') #############\n", tcname, t++); ch = (xchar)xi_tolower('A'); if (ch != 'a') { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (char=%c)\n\n", ch); log_print(XDLOG, "[%s:%02d] xi_toupper('a') #############\n", tcname, t++); ch = (xchar)xi_toupper('a'); if (ch != 'A') { log_print(XDLOG, " - result : failed!!!\n\n"); return -1; } log_print(XDLOG, " - result : pass. (char=%c)\n\n", ch); log_print(XDLOG, "================= DONE [xi_ctype.h] ================\n\n"); return 0; }
int tc_xi_file_dop() { xint32 t = 1; xchar *tcname = "xi_file.h"; xint32 ret; xi_dir_t *tdir; xi_file_stat_t fs; xchar pathbuf[1024]; xchar pathtmp[1024]; xchar *pathptr = NULL; tc_info(); log_print(XDLOG, "[%s:%02d] Create a directory ##########\n", tcname, t++); ret = xi_dir_make("xx_test", 0755); if (ret < 0) { log_print(XDLOG, " - result : failed!!! (ret=%d)\n\n", ret); return -1; } log_print(XDLOG, " - result : pass.\n\n"); log_print(XDLOG, "[%s:%02d] Create same directory #######\n", tcname, t++); ret = xi_dir_make("xx_test", 0x755); if (ret != XI_FILE_RV_ERR_AE) { log_print(XDLOG, " - result : failed!! (must return -4 / ret=%d)\n\n", ret); return -1; } log_print(XDLOG, " - result : pass. (must return -4 / ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] Remove the directory ########\n", tcname, t++); ret = xi_dir_remove("xx_test"); if (ret < 0) { log_print(XDLOG, " - result : failed!!! (ret=%d)\n\n", ret); return -1; } log_print(XDLOG, " - result : pass.\n\n"); log_print(XDLOG, "[%s:%02d] Create a nested directory ###\n", tcname, t++); ret = xi_dir_make_force("xx_test/depth", 0755); if (ret < 0) { log_print(XDLOG, " - result : failed!!! (ret=%d)\n\n", ret); return -1; } log_print(XDLOG, " - result : pass.\n\n"); log_print(XDLOG, "[%s:%02d] Remove a top directory ######\n", tcname, t++); ret = xi_dir_remove("xx_test"); if (ret != XI_FILE_RV_ERR_NOTEMPT) { log_print(XDLOG, " - result : failed!! (must return -14 / ret=%d)\n\n", ret); return -1; } log_print(XDLOG, " - result : pass. (must return -14 / ret=%d)\n\n", ret); log_print(XDLOG, "[%s:%02d] Open the directory ##########\n", tcname, t++); tdir = xi_dir_open("xx_test"); if (tdir == NULL) { log_print(XDLOG, " - result : failed!! (dir=%p)\n\n", tdir); return -1; } log_print(XDLOG, " - result : pass. (dir=%p)\n\n", tdir); log_print(XDLOG, "[%s:%02d] Read the directory ##########\n", tcname, t++); log_print(XDLOG, "xx_test >\n"); while ((ret = xi_dir_read(tdir, &fs)) > 0) { log_print(XDLOG, "\t%s\n", fs.filename); } if (ret < 0) { log_print(XDLOG, " - result : failed!! (ret=%d)\n\n", ret); return -1; } log_print(XDLOG, " - result : pass.\n\n"); log_print(XDLOG, "[%s:%02d] Close the directory #########\n", tcname, t++); ret = xi_dir_close(tdir); if (ret < 0) { log_print(XDLOG, " - result : failed!! (ret=%d)\n\n", ret); return -1; } log_print(XDLOG, " - result : pass.\n\n"); log_print(XDLOG, "[%s:%02d] Delete test directories #####\n", tcname, t++); ret = xi_dir_remove("xx_test/depth"); if (ret < 0) { log_print(XDLOG, " - result : failed!! (ret=%d)\n\n", ret); return -1; } ret = xi_dir_remove("xx_test"); if (ret < 0) { log_print(XDLOG, " - result : failed!! (ret=%d)\n\n", ret); return -1; } log_print(XDLOG, " - result : pass.\n\n"); log_print(XDLOG, "[%s:%02d] xi_pathname_absolute(..) ####\n", tcname, t++); ret = xi_pathname_absolute(pathbuf, sizeof(pathbuf), "../"); if (ret != XI_FILE_RV_OK) { log_print(XDLOG, " - result : failed!! (ret=%d)\n\n", ret); return -1; } log_print(XDLOG, " - result : pass. (../ = %s)\n\n", pathbuf); log_print(XDLOG, "[%s:%02d] xi_pathname_basename(..) ####\n", tcname, t++); pathptr = xi_pathname_basename(pathbuf); log_print(XDLOG, " - result : pass. (basename ../ = %s)\n\n", pathptr); log_print(XDLOG, "[%s:%02d] xi_pathname_get #############\n", tcname, t++); ret = xi_pathname_get(pathbuf, sizeof(pathbuf)); if (ret != XI_FILE_RV_OK) { log_print(XDLOG, " - result : failed!! (ret=%d)\n\n", ret); return -1; } log_print(XDLOG, " - result : pass.(current dir = %s)\n\n", pathbuf); log_print(XDLOG, "[%s:%02d] xi_pathname_set(..) #########\n", tcname, t++); ret = xi_pathname_set(".."); if (ret != XI_FILE_RV_OK) { log_print(XDLOG, " - result : failed!! (ret=%d)\n\n", ret); return -1; } xi_pathname_get(pathtmp, sizeof(pathtmp)); log_print(XDLOG, " - result : pass.(current dir = %s)\n\n", pathtmp); log_print(XDLOG, "[%s:%02d] xi_pathname_set (old) #######\n", tcname, t++); ret = xi_pathname_set(pathbuf); if (ret != XI_FILE_RV_OK) { log_print(XDLOG, " - result : failed!! (ret=%d)\n\n", ret); return -1; } xi_pathname_get(pathtmp, sizeof(pathtmp)); log_print(XDLOG, " - result : pass.(current dir = %s)\n\n", pathtmp); log_print(XDLOG, "========= DONE [xi_file.h - dir/path OP] =========\n\n"); return 0; }