summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/str.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/tests/str.c b/tests/str.c
index 0dcd896..ce1c3b5 100644
--- a/tests/str.c
+++ b/tests/str.c
@@ -124,10 +124,26 @@ static bool str_test_get_line(void)
str *lines = al_str_c("test\nasdf\ntest2\na\n");
str *lines_array[] = { al_str_c("test"), al_str_c("asdf"), al_str_c("test2"), al_str_c("a") };
- u32 count = 0;
+ str line;
+ al_memset(&line, 0, sizeof(str));
+ u32 c = 0;
- for (str line = { 0 }; al_str_get_line(lines, &line); ) {
- AL_TEST_TRUE(al_str_eq(&line, lines_array[count++]));
+ for (; al_str_get_line(lines, '\n', &line); ) {
+ AL_TEST_LT(c, (u32)AL_ARRAY_SIZE(lines_array), u32);
+ AL_TEST_TRUE(al_str_eq(&line, lines_array[c++]));
+ }
+
+ AL_TEST_EQ(c, (u32)AL_ARRAY_SIZE(lines_array), u32);
+
+ lines = al_str_c("");
+
+ al_memset(&line, 0, sizeof(str));
+ c = 0;
+
+ for (; al_str_get_line(lines, '\n', &line); ) {
+ AL_TEST_LT(c, 1, u32);
+ AL_TEST_EQ(line.len, 0, u32);
+ c++;
}
AL_TEST_END();