diff --git a/tests/gtest_main.cpp b/tests/gtest_main.cpp
index 3f59a9c..33dbfd9 100644
--- a/tests/gtest_main.cpp
+++ b/tests/gtest_main.cpp
@@ -324,7 +324,7 @@
   }
 
   int status;
-  if (waitpid(pid, &status, 0) != pid) {
+  if (TEMP_FAILURE_RETRY(waitpid(pid, &status, 0)) != pid) {
     perror("waitpid");
     return false;
   }
diff --git a/tests/sys_ptrace_test.cpp b/tests/sys_ptrace_test.cpp
index 78fcf2b..d460dec 100644
--- a/tests/sys_ptrace_test.cpp
+++ b/tests/sys_ptrace_test.cpp
@@ -51,7 +51,7 @@
   ~ChildGuard() {
     kill(pid, SIGKILL);
     int status;
-    waitpid(pid, &status, 0);
+    TEMP_FAILURE_RETRY(waitpid(pid, &status, 0));
   }
 
  private:
@@ -184,7 +184,7 @@
   ChildGuard guard(child);
 
   int status;
-  ASSERT_EQ(child, waitpid(child, &status, __WALL)) << strerror(errno);
+  ASSERT_EQ(child, TEMP_FAILURE_RETRY(waitpid(child, &status, __WALL))) << strerror(errno);
   ASSERT_TRUE(WIFSTOPPED(status)) << "Status was: " << status;
   ASSERT_EQ(SIGSTOP, WSTOPSIG(status)) << "Status was: " << status;
 
@@ -196,7 +196,7 @@
   set_watchpoint(child, uintptr_t(&data) + offset, size);
 
   ASSERT_EQ(0, ptrace(PTRACE_CONT, child, nullptr, nullptr)) << strerror(errno);
-  ASSERT_EQ(child, waitpid(child, &status, __WALL)) << strerror(errno);
+  ASSERT_EQ(child, TEMP_FAILURE_RETRY(waitpid(child, &status, __WALL))) << strerror(errno);
   ASSERT_TRUE(WIFSTOPPED(status)) << "Status was: " << status;
   ASSERT_EQ(SIGTRAP, WSTOPSIG(status)) << "Status was: " << status;
 
@@ -364,7 +364,7 @@
   ChildGuard guard(child);
 
   int status;
-  ASSERT_EQ(child, waitpid(child, &status, __WALL)) << strerror(errno);
+  ASSERT_EQ(child, TEMP_FAILURE_RETRY(waitpid(child, &status, __WALL))) << strerror(errno);
   ASSERT_TRUE(WIFSTOPPED(status)) << "Status was: " << status;
   ASSERT_EQ(SIGSTOP, WSTOPSIG(status)) << "Status was: " << status;
 
@@ -376,7 +376,7 @@
   set_breakpoint(child);
 
   ASSERT_EQ(0, ptrace(PTRACE_CONT, child, nullptr, nullptr)) << strerror(errno);
-  ASSERT_EQ(child, waitpid(child, &status, __WALL)) << strerror(errno);
+  ASSERT_EQ(child, TEMP_FAILURE_RETRY(waitpid(child, &status, __WALL))) << strerror(errno);
   ASSERT_TRUE(WIFSTOPPED(status)) << "Status was: " << status;
   ASSERT_EQ(SIGTRAP, WSTOPSIG(status)) << "Status was: " << status;
 
@@ -436,7 +436,7 @@
     }
 
     int result;
-    pid_t rc = waitpid(tracer, &result, 0);
+    pid_t rc = TEMP_FAILURE_RETRY(waitpid(tracer, &result, 0));
     if (rc != tracer) {
       printf("waitpid returned %d (%s)\n", rc, strerror(errno));
       return false;
@@ -463,7 +463,7 @@
     }
 
     int result;
-    pid_t rc = waitpid(worker, &result, WNOHANG);
+    pid_t rc = TEMP_FAILURE_RETRY(waitpid(worker, &result, WNOHANG));
     if (rc != 0) {
       printf("worker exited prematurely\n");
       return false;
@@ -471,7 +471,7 @@
 
     worker_pipe_write.reset();
 
-    rc = waitpid(worker, &result, 0);
+    rc = TEMP_FAILURE_RETRY(waitpid(worker, &result, 0));
     if (rc != worker) {
       printf("waitpid for worker returned %d (%s)\n", rc, strerror(errno));
       return false;
@@ -517,9 +517,9 @@
   std::this_thread::sleep_for(250ms);
 
   int result;
-  ASSERT_EQ(0, waitpid(worker, &result, WNOHANG));
+  ASSERT_EQ(0, TEMP_FAILURE_RETRY(waitpid(worker, &result, WNOHANG)));
   ASSERT_TRUE(WaitForTracer());
-  ASSERT_EQ(worker, waitpid(worker, &result, 0));
+  ASSERT_EQ(worker, TEMP_FAILURE_RETRY(waitpid(worker, &result, 0)));
 }
 
 TEST_F(PtraceResumptionTest, seize) {
diff --git a/tests/utils.h b/tests/utils.h
index ba006f1..9a8eb5d 100644
--- a/tests/utils.h
+++ b/tests/utils.h
@@ -140,7 +140,7 @@
 
 static inline void AssertChildExited(int pid, int expected_exit_status) {
   int status;
-  ASSERT_EQ(pid, waitpid(pid, &status, 0));
+  ASSERT_EQ(pid, TEMP_FAILURE_RETRY(waitpid(pid, &status, 0)));
   if (expected_exit_status >= 0) {
     ASSERT_TRUE(WIFEXITED(status));
     ASSERT_EQ(expected_exit_status, WEXITSTATUS(status));
