aboutsummaryrefslogtreecommitdiff
path: root/test/_case-test.h
diff options
context:
space:
mode:
Diffstat (limited to 'test/_case-test.h')
-rw-r--r--test/_case-test.h30
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;
}