diff --git a/src/test/test-daemon.c b/src/test/test-daemon.c index 1d3ac41cdd..979097a466 100644 --- a/src/test/test-daemon.c +++ b/src/test/test-daemon.c @@ -1,15 +1,20 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ +#include + #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; }