]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-daemon: add test case for sd_pidfd_get_inode_id() 37679/head
authorMike Yuan <me@yhndnzj.com>
Tue, 3 Jun 2025 15:15:00 +0000 (17:15 +0200)
committerMike Yuan <me@yhndnzj.com>
Wed, 4 Jun 2025 23:35:08 +0000 (01:35 +0200)
src/test/test-daemon.c

index 1d3ac41cdd030e185bf7305e53e3dfc7383c2ddd..979097a466ab94649861000a860b8a2642be4865 100644 (file)
@@ -1,15 +1,20 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
+#include <sys/eventfd.h>
+
 #include "sd-daemon.h"
 
+#include "fd-util.h"
 #include "parse-util.h"
+#include "pidfd-util.h"
+#include "process-util.h"
 #include "strv.h"
 #include "tests.h"
 #include "time-util.h"
 
 int main(int argc, char *argv[]) {
         _cleanup_strv_free_ char **l = NULL;
-        int n, i;
+        int r, n, i;
         usec_t duration = USEC_PER_SEC / 10;
 
         test_setup_logging(LOG_DEBUG);
@@ -54,5 +59,16 @@ int main(int argc, char *argv[]) {
                   "STOPPING=1");
         usleep_safe(duration);
 
+        _cleanup_close_ int fd = eventfd(0, EFD_CLOEXEC);
+        ASSERT_OK_ERRNO(fd);
+
+        r = sd_pidfd_get_inode_id(fd, NULL);
+        ASSERT_TRUE(IN_SET(r, -EOPNOTSUPP, -EBADF));
+        if (r == -EBADF) {
+                safe_close(fd);
+                ASSERT_OK_ERRNO(fd = pidfd_open(getpid_cached(), 0));
+                ASSERT_OK(sd_pidfd_get_inode_id(fd, NULL));
+        }
+
         return EXIT_SUCCESS;
 }