summaryrefslogtreecommitdiff
path: root/userland/test
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2023-11-15 21:12:44 +0100
committerAnton Kling <anton@kling.gg>2023-11-15 21:40:13 +0100
commitc9358cdeac4522922df46fb6e3ab6a517203ec99 (patch)
treea033b4386f1aa825c06d549d3a3bd8f4c0156ddd /userland/test
parent6713b6a6c112f0de92c63e349d100fc4bd89138e (diff)
LibC: Add getdelim and getline
Diffstat (limited to 'userland/test')
-rw-r--r--userland/test/test.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/userland/test/test.c b/userland/test/test.c
index ca8c142..2e4c83d 100644
--- a/userland/test/test.c
+++ b/userland/test/test.c
@@ -686,6 +686,38 @@ void dirname_test(void) {
dbgln("dirname TEST PASSED");
}
+void getline_test(void) {
+ dbgln("getline TEST");
+ {
+ char *buffer;
+ size_t size;
+ FILE *fp = open_memstream(&buffer, &size);
+ assert(fp);
+ const char *s = "line1\nline2\nfoo\nbar";
+ size_t line = strlen(s);
+ assert(fwrite(s, 1, line, fp) == line);
+ assert(0 == fseek(fp, 0, SEEK_SET));
+ char *line_buffer = NULL;
+ {
+ size_t n;
+ n = 256;
+ getline(&line_buffer, &n, fp);
+ assert(0 == strcmp("line1", line_buffer));
+ n = 256;
+ getline(&line_buffer, &n, fp);
+ assert(0 == strcmp("line2", line_buffer));
+ n = 256;
+ getline(&line_buffer, &n, fp);
+ assert(0 == strcmp("foo", line_buffer));
+ n = 256;
+ getline(&line_buffer, &n, fp);
+ assert(0 == strcmp("bar", line_buffer));
+ }
+ free(buffer);
+ }
+ dbgln("getline TEST PASSED");
+}
+
int main(void) {
dbgln("START");
malloc_test();
@@ -723,6 +755,7 @@ int main(void) {
qsort_test();
basename_test();
dirname_test();
+ getline_test();
// TODO: Add mkstemp
return 0;
}