📄 test-xnet.c
字号:
case T_SCTP_DEBUG: break; } break;#endif } return ("(unknown value)");}#if 0voidparse_options(int fd, char *opt_ptr, size_t opt_len){ struct t_opthdr *oh; for (oh = _T_OPT_FIRSTHDR_OFS(opt_ptr, opt_len, 0); oh; oh = _T_OPT_NEXTHDR_OFS(opt_ptr, opt_len, oh, 0)) { if (oh->len == sizeof(*oh)) continue; switch (oh->level) { case T_INET_SCTP: switch (oh->name) { case T_SCTP_PPI: ppi[fd] = *((t_uscalar_t *) T_OPT_DATA(oh)); continue; case T_SCTP_SID: sid[fd] = *((t_uscalar_t *) T_OPT_DATA(oh)); continue; case T_SCTP_SSN: ssn[fd] = *((t_uscalar_t *) T_OPT_DATA(oh)); continue; case T_SCTP_TSN: tsn[fd] = *((t_uscalar_t *) T_OPT_DATA(oh)); continue; } } }}#endifchar *mgmtflag_string(t_uscalar_t flag){ switch (flag) { case T_NEGOTIATE: return ("T_NEGOTIATE"); case T_CHECK: return ("T_CHECK"); case T_DEFAULT: return ("T_DEFAULT"); case T_SUCCESS: return ("T_SUCCESS"); case T_FAILURE: return ("T_FAILURE"); case T_CURRENT: return ("T_CURRENT"); case T_PARTSUCCESS: return ("T_PARTSUCCESS"); case T_READONLY: return ("T_READONLY"); case T_NOTSUPPORT: return ("T_NOTSUPPORT"); } return "(unknown flag)";}char *size_string(t_uscalar_t size){ static char buf[128]; switch (size) { case T_INFINITE: return ("T_INFINITE"); case T_INVALID: return ("T_INVALID"); case T_UNSPEC: return ("T_UNSPEC"); } snprintf(buf, sizeof(buf), "%lu", (ulong) size); return buf;}const char *prim_string(t_uscalar_t prim){ switch (prim) { case T_CONN_REQ: return ("T_CONN_REQ------"); case T_CONN_RES: return ("T_CONN_RES------"); case T_DISCON_REQ: return ("T_DISCON_REQ----"); case T_DATA_REQ: return ("T_DATA_REQ------"); case T_EXDATA_REQ: return ("T_EXDATA_REQ----"); case T_INFO_REQ: return ("T_INFO_REQ------"); case T_BIND_REQ: return ("T_BIND_REQ------"); case T_UNBIND_REQ: return ("T_UNBIND_REQ----"); case T_UNITDATA_REQ: return ("T_UNITDATA_REQ--"); case T_OPTMGMT_REQ: return ("T_OPTMGMT_REQ---"); case T_ORDREL_REQ: return ("T_ORDREL_REQ----"); case T_OPTDATA_REQ: return ("T_OPTDATA_REQ---"); case T_ADDR_REQ: return ("T_ADDR_REQ------"); case T_CAPABILITY_REQ: return ("T_CAPABILITY_REQ"); case T_CONN_IND: return ("T_CONN_IND------"); case T_CONN_CON: return ("T_CONN_CON------"); case T_DISCON_IND: return ("T_DISCON_IND----"); case T_DATA_IND: return ("T_DATA_IND------"); case T_EXDATA_IND: return ("T_EXDATA_IND----"); case T_INFO_ACK: return ("T_INFO_ACK------"); case T_BIND_ACK: return ("T_BIND_ACK------"); case T_ERROR_ACK: return ("T_ERROR_ACK-----"); case T_OK_ACK: return ("T_OK_ACK--------"); case T_UNITDATA_IND: return ("T_UNITDATA_IND--"); case T_UDERROR_IND: return ("T_UDERROR_IND---"); case T_OPTMGMT_ACK: return ("T_OPTMGMT_ACK---"); case T_ORDREL_IND: return ("T_ORDREL_IND----"); case T_OPTDATA_IND: return ("T_OPTDATA_IND---"); case T_ADDR_ACK: return ("T_ADDR_ACK------"); case T_CAPABILITY_ACK: return ("T_CAPABILITY_ACK"); default: return ("T_????_??? -----"); }}char *t_errno_string(t_scalar_t err, t_scalar_t syserr){ switch (err) { case 0: return ("ok"); case TBADADDR: return ("[TBADADDR]"); case TBADOPT: return ("[TBADOPT]"); case TACCES: return ("[TACCES]"); case TBADF: return ("[TBADF]"); case TNOADDR: return ("[TNOADDR]"); case TOUTSTATE: return ("[TOUTSTATE]"); case TBADSEQ: return ("[TBADSEQ]"); case TSYSERR: return errno_string(syserr); case TLOOK: return ("[TLOOK]"); case TBADDATA: return ("[TBADDATA]"); case TBUFOVFLW: return ("[TBUFOVFLW]"); case TFLOW: return ("[TFLOW]"); case TNODATA: return ("[TNODATA]"); case TNODIS: return ("[TNODIS]"); case TNOUDERR: return ("[TNOUDERR]"); case TBADFLAG: return ("[TBADFLAG]"); case TNOREL: return ("[TNOREL]"); case TNOTSUPPORT: return ("[TNOTSUPPORT]"); case TSTATECHNG: return ("[TSTATECHNG]"); case TNOSTRUCTYPE: return ("[TNOSTRUCTYPE]"); case TBADNAME: return ("[TBADNAME]"); case TBADQLEN: return ("[TBADQLEN]"); case TADDRBUSY: return ("[TADDRBUSY]"); case TINDOUT: return ("[TINDOUT]"); case TPROVMISMATCH: return ("[TPROVMISMATCH]"); case TRESQLEN: return ("[TRESQLEN]"); case TRESADDR: return ("[TRESADDR]"); case TQFULL: return ("[TQFULL]"); case TPROTO: return ("[TPROTO]"); default: { static char buf[32]; snprintf(buf, sizeof(buf), "[%ld]", (long) err); return buf; } }}char *t_look_string(int look){ switch (look) { case 0: return ("(NO EVENT)"); case T_LISTEN: return ("(T_LISTEN)"); case T_CONNECT: return ("(T_CONNECT)"); case T_DATA: return ("(T_DATA)"); case T_EXDATA: return ("(T_EXDATA)"); case T_DISCONNECT: return ("(T_DISCONNECT)"); case T_UDERR: return ("(T_UDERR)"); case T_ORDREL: return ("(T_ORDREL)"); case T_GODATA: return ("(T_GODATA)"); case T_GOEXDATA: return ("(T_GOEXDATA)"); default: { static char buf[32]; snprintf(buf, sizeof(buf), "(%d)", look); return buf; } }}voidprint_simple(int child, const char *msgs[]){ dummy = lockf(fileno(stdout), F_LOCK, 0); fprintf(stdout, msgs[child]); fflush(stdout); dummy = lockf(fileno(stdout), F_ULOCK, 0);}voidprint_simple_int(int child, const char *msgs[], int val){ dummy = lockf(fileno(stdout), F_LOCK, 0); fprintf(stdout, msgs[child], val); fflush(stdout); dummy = lockf(fileno(stdout), F_ULOCK, 0);}voidprint_double_int(int child, const char *msgs[], int val, int val2){ dummy = lockf(fileno(stdout), F_LOCK, 0); fprintf(stdout, msgs[child], val, val2); fflush(stdout); dummy = lockf(fileno(stdout), F_ULOCK, 0);}voidprint_triple_int(int child, const char *msgs[], int val, int val2, int val3){ dummy = lockf(fileno(stdout), F_LOCK, 0); fprintf(stdout, msgs[child], val, val2, val3); fflush(stdout); dummy = lockf(fileno(stdout), F_ULOCK, 0);}voidprint_simple_string(int child, const char *msgs[], const char *string){ dummy = lockf(fileno(stdout), F_LOCK, 0); fprintf(stdout, msgs[child], string); fflush(stdout); dummy = lockf(fileno(stdout), F_ULOCK, 0);}voidprint_string_state(int child, const char *msgs[], const char *string){ dummy = lockf(fileno(stdout), F_LOCK, 0); fprintf(stdout, msgs[child], string, child, state); fflush(stdout); dummy = lockf(fileno(stdout), F_ULOCK, 0);}voidprint_triple_string(int child, const char *msgs[], const char *string){ dummy = lockf(fileno(stdout), F_LOCK, 0); fprintf(stdout, msgs[child], "", child, state); fprintf(stdout, msgs[child], string, child, state); fprintf(stdout, msgs[child], "", child, state); fflush(stdout); dummy = lockf(fileno(stdout), F_ULOCK, 0);}voidprint_more(int child){ show = 1;}voidprint_less(int child){ static const char *msgs[] = { " . %1$6.6s . | <------ . ------> : [%2$d:%3$03d]\n", " : <------ . ------> | . %1$-6.6s . [%2$d:%3$03d]\n", " : | <------ . ------> : . %1$-6.6s . [%2$d:%3$03d]\n", " . %1$6.6s . : <: <------ . ------> : . %1$-6.6s . [%2$d:%3$03d]\n", }; if (show && verbose > 0) print_triple_string(child, msgs, "(more)"); show = 0;}voidprint_pipe(int child){ static const char *msgs[] = { " pipe() ----->v v<------------------------------>v \n", " v v<------------------------------>v<----- pipe() \n", " . . . \n", }; if (show && verbose > 3) print_simple(child, msgs);}voidprint_open(int child, const char *name){ static const char *msgs[] = { " open() ----->v . %-30.30s . \n", " | v %-30.30s v<----- open() \n", " | v<%-30.30s-.------ open() \n", " . . %-30.30s . \n", }; if (show && verbose > 3) print_simple_string(child, msgs, name);}voidprint_close(int child){ static const char *msgs[] = { " close() ----->X | | \n", " . X X<----- close() \n", " . X<-------------------------------.------ close() \n", " . . . \n", }; if (show && verbose > 3) print_simple(child, msgs);}voidprint_preamble(int child){ static const char *msgs[] = { "--------------------+ +----------Preamble--------------+ \n", " + +----------Preamble--------------+-------------------\n", " +--+----------Preamble--------------+ \n", "--------------------+--+----------Preamble--------------+-------------------\n", }; if (verbose > 0) print_simple(child, msgs);}voidprint_failure(int child, const char *string){ static const char *msgs[] = { "....................| %-32.32s| [%d:%03d]\n", " | %-32.32s|................... [%d:%03d]\n", " |..|%-32.32s| [%d:%03d]\n", "....................|...%-32.32s|................... [%d:%03d]\n", }; if (string && strnlen(string, 32) > 0 && verbose > 0) print_string_state(child, msgs, string);}voidprint_notapplicable(int child){ static const char *msgs[] = { "X-X-X-X-X-X-X-X-X-X-| |-X-X-X NOT APPLICABLE -X-X-X-X-X| [%d:%03d]\n", " | |-X-X-X NOT APPLICABLE -X-X-X-X-X|X-X-X-X-X-X-X-X-X-X [%d:%03d]\n", " |X-|-X-X-X NOT APPLICABLE -X-X-X-X-X| [%d:%03d]\n", "X-X-X-X-X-X-X-X-X-X-|X-|-X-X-X NOT APPLICABLE -X-X-X-X-X|X-X-X-X-X-X-X-X-X-X [%d:%03d]\n", }; if (verbose > 0) print_double_int(child, msgs, child, state); print_failure(child, failure_string);}voidprint_skipped(int child){ static const char *msgs[] = { "::::::::::::::::::::| |::::::::: SKIPPED ::::::::::::::| [%d:%03d]\n", " | |::::::::: SKIPPED ::::::::::::::|::::::::::::::::::: [%d:%03d]\n", " |::|::::::::: SKIPPED ::::::::::::::| [%d:%03d]\n", "::::::::::::::::::::|::|::::::::: SKIPPED ::::::::::::::|::::::::::::::::::: [%d:%03d]\n", }; if (verbose > 0) print_double_int(child, msgs, child, state); print_failure(child, failure_string);}voidprint_inconclusive(int child){ static const char *msgs[] = { "????????????????????| |??????? INCONCLUSIVE ???????????| [%d:%03d]\n", " | |??????? INCONCLUSIVE ???????????|??????????????????? [%d:%03d]\n", " |??|??????? INCONCLUSIVE ???????????| [%d:%03d]\n", "????????????????????|??|??????? INCONCLUSIVE ???????????|??????????????????? [%d:%03d]\n", }; if (verbose > 0) print_double_int(child, msgs, child, state); print_failure(child, failure_string);}voidprint_test(int child){ static const char *msgs[] = { "--------------------+ +------------Test----------------+ \n", " + +------------Test----------------+-------------------\n", " +--+------------Test----------------+ \n", "--------------------+--+------------Test----------------+-------------------\n", }; if (verbose > 0) print_simple(child, msgs);}voidprint_failed(int child){ static const char *msgs[] = { "XXXXXXXXXXXXXXXXXXXX| |XXXXXXXXXX FAILED XXXXXXXXXXXXXX| [%d:%03d]\n", " | |XXXXXXXXXX FAILED XXXXXXXXXXXXXX|XXXXXXXXXXXXXXXXXXX [%d:%03d]\n", " |XX|XXXXXXXXXX FAILED XXXXXXXXXXXXXX| [%d:%03d]\n", "XXXXXXXXXXXXXXXXXXXX|XX|XXXXXXXXXX FAILED XXXXXXXXXXXXXX|XXXXXXXXXXXXXXXXXXX [%d:%03d]\n", }; if (verbose > 0) print_double_int(child, msgs, child, state); print_failure(child, failure_string);}voidprint_script_error(int child){ static const char *msgs[] = { "####################| |######## SCRIPT ERROR ##########| [%d:%03d]\n", " | |######## SCRIPT ERROR ##########|################### [%d:%03d]\n", " |##|######## SCRIPT ERROR ##########| [%d:%03d]\n", "####################|##|######## SCRIPT ERROR ##########|################### [%d:%03d]\n", }; if (verbose > 0) print_double_int(child, msgs, child, state); print_failure(child, failure_string);}voidprint_passed(int child){ static const char *msgs[] = { "********************| |********** PASSED **************| [%d:%03d]\n", " | |********** PASSED **************|******************* [%d:%03d]\n", " |**|********** PASSED **************| [%d:%03d]\n", "********************|**|********** PASSED **************|******************* [%d:%03d]\n", }; if (verbose > 2) print_double_int(child, msgs, child, state); print_failure(child, failure_string);}voidprint_postamble(int child){ static const char *msgs[] = { "--------------------+ +----------Postamble-------------+ \n", " + +----------Postamble-------------+-------------------\n", " +--+----------Postamble-------------+ \n",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -