]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: Improve coverage in test-memfd-util and use ASSERT_OK() macro and friends
authorBusayo Dada <toyinoluwabusayo@gmail.com>
Wed, 26 Mar 2025 14:04:05 +0000 (15:04 +0100)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 8 Apr 2025 21:45:12 +0000 (06:45 +0900)
src/test/test-memfd-util.c

index d38397a3f3b49ffd804c0ffa2471021a9fc78d87..43c5c31193e2cb8902059b3d7dcb68d6652b96da 100644 (file)
@@ -1,7 +1,5 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
-#include <unistd.h>
-
 #include "errno-util.h"
 #include "fd-util.h"
 #include "memfd-util.h"
 
 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);