Build on osx

This commit is contained in:
Nils O. Selåsdal
2025-07-16 00:50:07 +02:00
parent c0d46d31fb
commit 6d7b80a6d2
5 changed files with 52 additions and 45 deletions
+43 -42
View File
@@ -7,91 +7,92 @@
START_TEST (test_getfields)
{
char str[] = "a;b;c";
char *letters[5] = {NULL};
char *letters[5] = {NULL};
int rc = uc_getfields(str, letters, 5, 0, ";");
ck_assert_int_eq(rc, 3);
ck_assert_str_eq("a", letters[0]);
ck_assert_str_eq("b", letters[1]);
ck_assert_str_eq("c", letters[2]);
}
END_TEST
START_TEST (test_getfields_consecutive)
{
char str[] = "a;;b;c;;;";
char *letters[7] = {NULL};
char *letters[7] = {NULL};
int rc = uc_getfields(str, letters, 5, 0, ";");
ck_assert_int_eq(rc, 5);
// This result is rather silly, but it's
// This result is rather silly, but it's
// how getfields works with mflag=0
ck_assert_str_eq("a", letters[0]);
ck_assert_str_eq("", letters[1]);
ck_assert_str_eq("b", letters[2]);
ck_assert_str_eq("c", letters[3]);
ck_assert_str_eq(";;", letters[4]);
}
END_TEST
START_TEST (test_getfields_mflag)
{
char str[] = "a;b;c";
char *letters[5] = {NULL};
char *letters[5] = {NULL};
int rc = uc_getfields(str, letters, 5, 1, ";");
ck_assert_int_eq(rc, 3);
ck_assert_str_eq("a", letters[0]);
ck_assert_str_eq("b", letters[1]);
ck_assert_str_eq("c", letters[2]);
}
END_TEST
START_TEST (test_getfields_consecutive_mflag)
{
char str[] = "a;;b;c;;;";
char *letters[7] = {NULL};
char *letters[7] = {NULL};
int rc = uc_getfields(str, letters, 7, 1, ";");
ck_assert_int_eq(rc, 3);
// This result is rather silly, but it's
// This result is rather silly, but it's
// how getfields works with mflag=0
ck_assert_str_eq("a", letters[0]);
ck_assert_str_eq("b", letters[1]);
ck_assert_str_eq("c", letters[2]);
}
END_TEST
START_TEST (test_getfields_too_many)
{
char str[] = "a\r\nb\r\nc\r\nd\r\ne";
char *letters[4] = {NULL};
char *letters[4] = {NULL};
int rc = uc_getfields(str, letters, 4, 0, "\r\n");
ck_assert_int_eq(rc, 4);
// This result is rather silly, but it's
// This result is rather silly, but it's
// how getfields works with mflag=0
ck_assert_str_eq("a", letters[0]);
ck_assert_str_eq("", letters[1]);
ck_assert_str_eq("b", letters[2]);
ck_assert_str_eq("\nc\r\nd\r\ne", letters[3]);
}
END_TEST
START_TEST (test_getfields_too_many_mflag)
{
char str[] = "a\r\nb\r\nc\r\nd\r\ne";
char *letters[4] = {NULL};
char *letters[4] = {NULL};
int rc = uc_getfields(str, letters, 4, 1, "\r\n");
ck_assert_int_eq(rc, 4);
@@ -100,13 +101,13 @@ START_TEST (test_getfields_too_many_mflag)
ck_assert_str_eq("b", letters[1]);
ck_assert_str_eq("c", letters[2]);
ck_assert_str_eq("d\r\ne", letters[3]);
}
END_TEST
START_TEST (test_getfields_empty)
{
char str[] = "";
char *letters[4] = {NULL};
char *letters[4] = {NULL};
int rc = uc_getfields(str, letters, 4, 0, ";\r\n");
ck_assert_int_eq(rc, 1);
@@ -115,53 +116,53 @@ START_TEST (test_getfields_empty)
rc = uc_getfields(str, letters, 4, 1, ";\r\n");
ck_assert_int_eq(rc, 0);
}
END_TEST
START_TEST (test_gettokens)
{
char str[] = "a;b;c";
char *letters[5] = {NULL};
char *letters[5] = {NULL};
int rc = uc_gettokens(str, letters, 5,";");
ck_assert_int_eq(rc, 3);
ck_assert_str_eq("a", letters[0]);
ck_assert_str_eq("b", letters[1]);
ck_assert_str_eq("c", letters[2]);
}
END_TEST
START_TEST (test_gettokens_consecutive)
{
char str[] = "a;;;b;;c;";
char *letters[5] = {NULL};
char *letters[5] = {NULL};
int rc = uc_gettokens(str, letters, 5,";");
ck_assert_int_eq(rc, 3);
ck_assert_str_eq("a", letters[0]);
ck_assert_str_eq("b", letters[1]);
ck_assert_str_eq("c", letters[2]);
}
END_TEST
START_TEST (test_gettokens_empty)
{
char str[] = "";
char *letters[5] = {NULL};
char *letters[5] = {NULL};
int rc = uc_gettokens(str, letters, 5,";");
ck_assert_int_eq(rc, 0);
}
END_TEST
START_TEST (test_gettokens_quotes)
{
char str[] = "\"abc\";d;\"e \"";
char *letters[5] = {NULL};
char *letters[5] = {NULL};
int rc = uc_gettokens(str, letters, 5,";");
ck_assert_int_eq(rc, 3);
@@ -169,13 +170,13 @@ START_TEST (test_gettokens_quotes)
ck_assert_str_eq("abc", letters[0]);
ck_assert_str_eq("d", letters[1]);
ck_assert_str_eq("e ", letters[2]);
}
END_TEST
START_TEST (test_gettokens_double_quotes)
{
char str[] = "\"\"abc\"\";d;\"e\"\"f\"\"\"";
char *letters[5] = {NULL};
char *letters[5] = {NULL};
int rc = uc_gettokens(str, letters, 5,";");
ck_assert_int_eq(rc, 3);
@@ -183,7 +184,7 @@ START_TEST (test_gettokens_double_quotes)
ck_assert_str_eq("abc", letters[0]);
ck_assert_str_eq("d", letters[1]);
ck_assert_str_eq("e\"f\"", letters[2]);
}
END_TEST
Suite *string_suite(void)