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;
}
Ejemplo n.º 2
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;
}
Ejemplo n.º 3
0
	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;
	}
Ejemplo n.º 4
0
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;
}
Ejemplo n.º 5
0
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);
}
Ejemplo n.º 6
0
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;
}
Ejemplo n.º 7
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;
}