Invalidate cached pid in vfork.
Bug: http://b/23008979
Change-Id: I1dd900ac988cdbe10aad3abc53240c5d352891d5
diff --git a/tests/unistd_test.cpp b/tests/unistd_test.cpp
index b29c6f3..8e1f412 100644
--- a/tests/unistd_test.cpp
+++ b/tests/unistd_test.cpp
@@ -402,11 +402,11 @@
}
}
-TEST(unistd, getpid_caching_and_fork) {
+static void TestGetPidCachingWithFork(int (*fork_fn)()) {
pid_t parent_pid = getpid();
ASSERT_EQ(syscall(__NR_getpid), parent_pid);
- pid_t fork_result = fork();
+ pid_t fork_result = fork_fn();
ASSERT_NE(fork_result, -1);
if (fork_result == 0) {
// We're the child.
@@ -424,6 +424,14 @@
}
}
+TEST(unistd, getpid_caching_and_fork) {
+ TestGetPidCachingWithFork(fork);
+}
+
+TEST(unistd, getpid_caching_and_vfork) {
+ TestGetPidCachingWithFork(vfork);
+}
+
static int GetPidCachingCloneStartRoutine(void*) {
AssertGetPidCorrect();
return 123;