From: Zbigniew Jędrzejewski-Szmek Date: Tue, 21 Mar 2023 08:32:12 +0000 (+0100) Subject: test-fileio: add test for return value of read_one_line_file() X-Git-Tag: v254-rc1~950 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d175b709e4a9b2239c85abd91f78dd90275c5802;p=thirdparty%2Fsystemd.git test-fileio: add test for return value of read_one_line_file() Prompted by https://github.com/systemd/systemd/pull/26904#pullrequestreview-1349890241. --- diff --git a/src/test/test-fileio.c b/src/test/test-fileio.c index 206444093b0..2e05992c180 100644 --- a/src/test/test-fileio.c +++ b/src/test/test-fileio.c @@ -385,6 +385,42 @@ TEST(capeff) { } } +TEST(read_one_line_file) { + _cleanup_(unlink_tempfilep) char fn[] = "/tmp/test-fileio-1lf-XXXXXX"; + int fd; + _cleanup_fclose_ FILE *f = NULL; + _cleanup_free_ char *buf, *buf2, *buf3, *buf4, *buf5; + + fd = mkostemp_safe(fn); + assert_se(fd >= 0); + + f = fdopen(fd, "we"); + assert_se(f); + + assert_se(read_one_line_file(fn, &buf) == 0); + assert_se(streq_ptr(buf, "")); + assert_se(read_one_line_file(fn, &buf2) == 0); + assert_se(streq_ptr(buf2, "")); + + assert_se(write_string_stream(f, "x", WRITE_STRING_FILE_AVOID_NEWLINE) >= 0); + fflush(f); + + assert_se(read_one_line_file(fn, &buf3) == 1); + assert_se(streq_ptr(buf3, "x")); + + assert_se(write_string_stream(f, "\n", WRITE_STRING_FILE_AVOID_NEWLINE) >= 0); + fflush(f); + + assert_se(read_one_line_file(fn, &buf4) == 2); + assert_se(streq_ptr(buf4, "x")); + + assert_se(write_string_stream(f, "\n", WRITE_STRING_FILE_AVOID_NEWLINE) >= 0); + fflush(f); + + assert_se(read_one_line_file(fn, &buf5) == 2); + assert_se(streq_ptr(buf5, "x")); +} + TEST(write_string_stream) { _cleanup_(unlink_tempfilep) char fn[] = "/tmp/test-write_string_stream-XXXXXX"; _cleanup_fclose_ FILE *f = NULL;