diff options
Diffstat (limited to 'test/_case-test.h')
| -rw-r--r-- | test/_case-test.h | 30 | 
1 files changed, 14 insertions, 16 deletions
| diff --git a/test/_case-test.h b/test/_case-test.h index 121667a..12e3a57 100644 --- a/test/_case-test.h +++ b/test/_case-test.h @@ -52,39 +52,37 @@ main(int, char **argv)  bool  test(const char8_t *line, int id)  { +	struct u8view sv = {line, strlen(line)};  	struct u8view before, after, flags; -	before.p = line; -	after.p = strchr(line, ';') + 1; -	before.len = after.p - before.p - 1; -	flags.p = strchr(after.p, ';') + 1; -	after.len = flags.p - after.p - 1; -	flags.len = strlen(flags.p); +	before = u8split(&sv, ';'); +	after  = u8split(&sv, ';'); +	flags  = u8split(&sv, ';'); -	enum caseflags cf = u8eq(U8_ARGS(flags), U8_ARGS(U8("ẞ")))  ? CF_ẞ -	                  : u8eq(U8_ARGS(flags), U8_ARGS(U8("AZ"))) ? CF_LANG_AZ -	                  : u8eq(U8_ARGS(flags), U8_ARGS(U8("LT"))) ? CF_LANG_LT -	                  : u8eq(U8_ARGS(flags), U8_ARGS(U8("NL"))) ? CF_LANG_NL -	                                                            : 0; +	enum caseflags cf = u8eq(flags, U8("ẞ"))  ? CF_ẞ +	                  : u8eq(flags, U8("AZ")) ? CF_LANG_AZ +	                  : u8eq(flags, U8("LT")) ? CF_LANG_LT +	                  : u8eq(flags, U8("NL")) ? CF_LANG_NL +	                                          : 0;  	char8_t *buf = bufalloc(nullptr, 1, after.len); -	size_t bufsz = FUNC(nullptr, 0, U8_ARGS(before), cf); +	size_t bufsz = FUNC(nullptr, 0, before, cf);  	if (bufsz != after.len) {  		warn("case %d: expected %scased buffer size of %zu but got %zu "  		     "(flags=‘%.*s’)", -		     id, STR(CASETYPE), after.len, bufsz, U8_PRI_ARGS(flags)); +		     id, STR(CASETYPE), after.len, bufsz, SV_PRI_ARGS(flags));  		return false;  	} -	bufsz = FUNC(buf, bufsz, U8_ARGS(before), cf); +	bufsz = FUNC(buf, bufsz, before, cf);  	if (bufsz != after.len) {  		warn("case %d: expected %scased length of %zu but got %zu "  		     "(flags=‘%.*s’)", -		     id, STR(CASETYPE), after.len, bufsz, U8_PRI_ARGS(flags)); +		     id, STR(CASETYPE), after.len, bufsz, SV_PRI_ARGS(flags));  		return false;  	}  	if (!memeq(buf, after.p, bufsz)) {  		warn("case %d: expected ‘%.*s’ but got ‘%.*s’ (flags=‘%.*s’)", id, -		     U8_PRI_ARGS(after), (int)bufsz, buf, U8_PRI_ARGS(flags)); +		     SV_PRI_ARGS(after), (int)bufsz, buf, SV_PRI_ARGS(flags));  		return false;  	} |