diff options
Diffstat (limited to 'tests/fdtrack_test.cpp')
-rw-r--r-- | tests/fdtrack_test.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/fdtrack_test.cpp b/tests/fdtrack_test.cpp index bfa3dd144..44aa033a0 100644 --- a/tests/fdtrack_test.cpp +++ b/tests/fdtrack_test.cpp @@ -257,4 +257,24 @@ FDTRACK_TEST(recvmsg, ({ ASSERT_EQ(3, ReceiveFileDescriptors(sockets[1], buf, sizeof(buf), &received_fd)); received_fd.release(); })); + +FDTRACK_TEST_NAME(vfork, "open", ({ + int fd = open("/dev/null", O_RDONLY); + + pid_t rc = vfork(); + ASSERT_NE(-1, rc); + + if (rc == 0) { + close(fd); + _exit(0); + } + + int status; + pid_t wait_result = waitpid(rc, &status, 0); + ASSERT_EQ(wait_result, rc); + ASSERT_TRUE(WIFEXITED(status)); + ASSERT_EQ(0, WEXITSTATUS(status)); + + fd; +})); // clang-format on |