summaryrefslogtreecommitdiff
path: root/tests/sys_ptrace_test.cpp
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2017-11-29 00:23:11 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2017-11-29 00:23:11 +0000
commit0a25aa60a2a7cc6b681dd2e31321000cedbff77e (patch)
tree71a9010357ac5f4c35035066e6676a9857a4a547 /tests/sys_ptrace_test.cpp
parent72dcf2340ffb3215bb5f71515d2b59ec88d331a4 (diff)
parentcabc77f9172d74ff0bfc56d0797a6a8255b14f2a (diff)
Merge "Always wrap waitpid in TEMP_FAILURE_RETRY."
Diffstat (limited to 'tests/sys_ptrace_test.cpp')
-rw-r--r--tests/sys_ptrace_test.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/tests/sys_ptrace_test.cpp b/tests/sys_ptrace_test.cpp
index 78fcf2be3..d460dec85 100644
--- a/tests/sys_ptrace_test.cpp
+++ b/tests/sys_ptrace_test.cpp
@@ -51,7 +51,7 @@ class ChildGuard {
~ChildGuard() {
kill(pid, SIGKILL);
int status;
- waitpid(pid, &status, 0);
+ TEMP_FAILURE_RETRY(waitpid(pid, &status, 0));
}
private:
@@ -184,7 +184,7 @@ static void run_watchpoint_test(std::function<void(T&)> child_func, size_t offse
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 @@ static void run_watchpoint_test(std::function<void(T&)> child_func, size_t offse
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 @@ TEST(sys_ptrace, hardware_breakpoint) {
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 @@ TEST(sys_ptrace, hardware_breakpoint) {
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 @@ class PtraceResumptionTest : public ::testing::Test {
}
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 @@ class PtraceResumptionTest : public ::testing::Test {
}
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 @@ class PtraceResumptionTest : public ::testing::Test {
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 @@ TEST_F(PtraceResumptionTest, smoke) {
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) {