ATF_TC_BODY(strvis_basic, tc) { char *srcbuf, *dstbuf, *visbuf; unsigned int i, j; ATF_REQUIRE((dstbuf = malloc(SIZE)) != NULL); ATF_REQUIRE((srcbuf = malloc(SIZE)) != NULL); ATF_REQUIRE((visbuf = malloc(SIZE * 4 + 1)) != NULL); for (i = 0; i < SIZE; i++) srcbuf[i] = (char)i; for (i = 0; i < __arraycount(styles); i++) { ATF_REQUIRE(strsvisx(visbuf, srcbuf, SIZE, styles[i], "") > 0); memset(dstbuf, 0, SIZE); ATF_REQUIRE(strunvisx(dstbuf, visbuf, styles[i] & (VIS_HTTP1808|VIS_MIMESTYLE)) > 0); for (j = 0; j < SIZE; j++) if (dstbuf[j] != (char)j) atf_tc_fail_nonfatal("Failed for style %x, " "char %d [%d]", styles[i], j, dstbuf[j]); } free(dstbuf); free(srcbuf); free(visbuf); }
int strvisx(char *dst, const char *src, size_t len, int flag) { char *extra = NULL; int rv; MAKEEXTRALIST(flag, extra, ""); if (!extra) { *dst = '\0'; /* can't create extra, return "" */ return 0; } rv = strsvisx(dst, src, len, flag, extra); free(extra); return rv; }