From: Busayo Dada Date: Wed, 26 Mar 2025 14:04:05 +0000 (+0100) Subject: test: Improve coverage in test-memfd-util and use ASSERT_OK() macro and friends X-Git-Tag: v258-rc1~863 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8951706784c0534f821600fda2fb1e89f875f823;p=thirdparty%2Fsystemd.git test: Improve coverage in test-memfd-util and use ASSERT_OK() macro and friends --- diff --git a/src/test/test-memfd-util.c b/src/test/test-memfd-util.c index d38397a3f3b..43c5c31193e 100644 --- a/src/test/test-memfd-util.c +++ b/src/test/test-memfd-util.c @@ -1,7 +1,5 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ -#include - #include "errno-util.h" #include "fd-util.h" #include "memfd-util.h" @@ -11,21 +9,30 @@ TEST(memfd_get_sealed) { #define TEST_TEXT "this is some random test text we are going to write to a memfd" - _cleanup_close_ int fd = -EBADF; - - fd = memfd_new_full("test-memfd-get-sealed", MFD_ALLOW_SEALING); + _cleanup_close_ int fd = memfd_new_full("test-memfd-get-sealed", MFD_ALLOW_SEALING); if (fd < 0) { - assert_se(ERRNO_IS_NOT_SUPPORTED(fd)); - return; + ASSERT_TRUE(ERRNO_IS_NOT_SUPPORTED(fd)); + return (void) log_tests_skipped_errno(fd, "Failed to create new memfd"); } - - assert_se(write(fd, TEST_TEXT, strlen(TEST_TEXT)) == strlen(TEST_TEXT)); + ASSERT_OK_EQ_ERRNO(write(fd, TEST_TEXT, strlen(TEST_TEXT)), (ssize_t) strlen(TEST_TEXT)); /* we'll leave the read offset at the end of the memfd, the fdopen_independent() descriptors should * start at the beginning anyway */ - assert_se(memfd_get_sealed(fd) == 0); - assert_se(memfd_set_sealed(fd) >= 0); - assert_se(memfd_get_sealed(fd) > 0); + uint64_t size, new_size; + ASSERT_OK(memfd_get_size(fd, &size)); + ASSERT_GE(size, (uint64_t) strlen(TEST_TEXT)); + + ASSERT_OK(memfd_set_size(fd, size * 2)); + ASSERT_OK(memfd_get_size(fd, &new_size)); + ASSERT_EQ(new_size, size * 2); + + ASSERT_OK(memfd_set_size(fd, new_size / 2)); + ASSERT_OK(memfd_get_size(fd, &size)); + ASSERT_EQ(size, new_size / 2); + + ASSERT_OK(memfd_get_sealed(fd) == 0); + ASSERT_OK(memfd_set_sealed(fd) >= 0); + ASSERT_OK(memfd_get_sealed(fd) > 0); } DEFINE_TEST_MAIN(LOG_DEBUG);