diff options
author | Anton Kling <anton@kling.gg> | 2023-11-15 21:12:44 +0100 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2023-11-15 21:40:13 +0100 |
commit | c9358cdeac4522922df46fb6e3ab6a517203ec99 (patch) | |
tree | a033b4386f1aa825c06d549d3a3bd8f4c0156ddd /userland/test | |
parent | 6713b6a6c112f0de92c63e349d100fc4bd89138e (diff) |
LibC: Add getdelim and getline
Diffstat (limited to 'userland/test')
-rw-r--r-- | userland/test/test.c | 33 |
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; } |