From e9c5af74ea55aeefaa3f4f9c15fefb8c3a2227b2 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 13 Nov 2025 07:46:13 +0900 Subject: [PATCH] test: move several test cases to test-tmpfile-util.c --- src/test/test-fileio.c | 56 ---------------------------------- src/test/test-tmpfile-util.c | 58 ++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 56 deletions(-) diff --git a/src/test/test-fileio.c b/src/test/test-fileio.c index 0c9346ff64f..c5f014c6301 100644 --- a/src/test/test-fileio.c +++ b/src/test/test-fileio.c @@ -260,62 +260,6 @@ TEST(search_and_fopen_nulstr) { ASSERT_ERROR(search_and_fopen_nulstr(bn, "re", NULL, dirs, &f, &p), ENOENT); } -TEST(writing_tmpfile) { - _cleanup_(unlink_tempfilep) char name[] = "/tmp/test-systemd_writing_tmpfile.XXXXXX"; - _cleanup_free_ char *contents = NULL; - size_t size; - _cleanup_close_ int fd = -EBADF; - - struct iovec iov[] = { - IOVEC_MAKE_STRING("abc\n"), - IOVEC_MAKE_STRING(ALPHANUMERICAL "\n"), - IOVEC_MAKE_STRING(""), - }; - - ASSERT_OK(fd = mkostemp_safe(name)); - - ASSERT_OK_ERRNO(writev(fd, iov, 3)); - - ASSERT_OK(read_full_file(name, &contents, &size)); - ASSERT_STREQ(contents, "abc\n" ALPHANUMERICAL "\n"); -} - -TEST(tempfn) { - char *ret = NULL, *p; - - ASSERT_OK(tempfn_xxxxxx("/foo/bar/waldo", NULL, &ret)); - ASSERT_STREQ(ret, "/foo/bar/.#waldoXXXXXX"); - free(ret); - - ASSERT_OK(tempfn_xxxxxx("/foo/bar/waldo", "[miau]", &ret)); - ASSERT_STREQ(ret, "/foo/bar/.#[miau]waldoXXXXXX"); - free(ret); - - ASSERT_OK(tempfn_random("/foo/bar/waldo", NULL, &ret)); - ASSERT_NOT_NULL(p = startswith(ret, "/foo/bar/.#waldo")); - ASSERT_EQ(strlen(p), 16U); - ASSERT_TRUE(in_charset(p, "0123456789abcdef")); - free(ret); - - ASSERT_OK(tempfn_random("/foo/bar/waldo", "[wuff]", &ret)); - ASSERT_NOT_NULL(p = startswith(ret, "/foo/bar/.#[wuff]waldo")); - ASSERT_EQ(strlen(p), 16U); - ASSERT_TRUE(in_charset(p, "0123456789abcdef")); - free(ret); - - ASSERT_OK(tempfn_random_child("/foo/bar/waldo", NULL, &ret)); - ASSERT_NOT_NULL(p = startswith(ret, "/foo/bar/waldo/.#")); - ASSERT_EQ(strlen(p), 16U); - ASSERT_TRUE(in_charset(p, "0123456789abcdef")); - free(ret); - - ASSERT_OK(tempfn_random_child("/foo/bar/waldo", "[kikiriki]", &ret)); - ASSERT_NOT_NULL(p = startswith(ret, "/foo/bar/waldo/.#[kikiriki]")); - ASSERT_EQ(strlen(p), 16U); - ASSERT_TRUE(in_charset(p, "0123456789abcdef")); - free(ret); -} - static const char chars[] = "Aąę„”\n루\377"; diff --git a/src/test/test-tmpfile-util.c b/src/test/test-tmpfile-util.c index cd46716516f..87a54abb5be 100644 --- a/src/test/test-tmpfile-util.c +++ b/src/test/test-tmpfile-util.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ +#include #include #include @@ -10,6 +11,7 @@ #include "fileio.h" #include "format-util.h" #include "fs-util.h" +#include "iovec-util.h" #include "log.h" #include "path-util.h" #include "process-util.h" @@ -17,6 +19,62 @@ #include "tests.h" #include "tmpfile-util.h" +TEST(writing_tmpfile) { + _cleanup_(unlink_tempfilep) char name[] = "/tmp/test-systemd_writing_tmpfile.XXXXXX"; + _cleanup_free_ char *contents = NULL; + size_t size; + _cleanup_close_ int fd = -EBADF; + + struct iovec iov[] = { + IOVEC_MAKE_STRING("abc\n"), + IOVEC_MAKE_STRING(ALPHANUMERICAL "\n"), + IOVEC_MAKE_STRING(""), + }; + + ASSERT_OK(fd = mkostemp_safe(name)); + + ASSERT_OK_ERRNO(writev(fd, iov, 3)); + + ASSERT_OK(read_full_file(name, &contents, &size)); + ASSERT_STREQ(contents, "abc\n" ALPHANUMERICAL "\n"); +} + +TEST(tempfn) { + char *ret = NULL, *p; + + ASSERT_OK(tempfn_xxxxxx("/foo/bar/waldo", NULL, &ret)); + ASSERT_STREQ(ret, "/foo/bar/.#waldoXXXXXX"); + free(ret); + + ASSERT_OK(tempfn_xxxxxx("/foo/bar/waldo", "[miau]", &ret)); + ASSERT_STREQ(ret, "/foo/bar/.#[miau]waldoXXXXXX"); + free(ret); + + ASSERT_OK(tempfn_random("/foo/bar/waldo", NULL, &ret)); + ASSERT_NOT_NULL(p = startswith(ret, "/foo/bar/.#waldo")); + ASSERT_EQ(strlen(p), 16U); + ASSERT_TRUE(in_charset(p, "0123456789abcdef")); + free(ret); + + ASSERT_OK(tempfn_random("/foo/bar/waldo", "[wuff]", &ret)); + ASSERT_NOT_NULL(p = startswith(ret, "/foo/bar/.#[wuff]waldo")); + ASSERT_EQ(strlen(p), 16U); + ASSERT_TRUE(in_charset(p, "0123456789abcdef")); + free(ret); + + ASSERT_OK(tempfn_random_child("/foo/bar/waldo", NULL, &ret)); + ASSERT_NOT_NULL(p = startswith(ret, "/foo/bar/waldo/.#")); + ASSERT_EQ(strlen(p), 16U); + ASSERT_TRUE(in_charset(p, "0123456789abcdef")); + free(ret); + + ASSERT_OK(tempfn_random_child("/foo/bar/waldo", "[kikiriki]", &ret)); + ASSERT_NOT_NULL(p = startswith(ret, "/foo/bar/waldo/.#[kikiriki]")); + ASSERT_EQ(strlen(p), 16U); + ASSERT_TRUE(in_charset(p, "0123456789abcdef")); + free(ret); +} + static void test_tempfn_random_one(const char *p, const char *extra, const char *expect, int ret) { _cleanup_free_ char *s = NULL; int r; -- 2.47.3