Commit 5a453354 authored by Vlad Tsyrklevich's avatar Vlad Tsyrklevich Committed by Commit Bot

GWP-ASan: Work around WaitForMultiprocessTestChildExit bug

WaitForMultiprocessTestChildExit on Android currently can't handle child
process crashes due to threading requirements for the Android-specific
implementation. Hack around it for now.

Bug: 973167
Change-Id: I7027dba463150802516ea525f4fc4e2cdfd8d18a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1725335
Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
Auto-Submit: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
Reviewed-by: default avatarVitaly Buka <vitalybuka@chromium.org>
Cr-Commit-Position: refs/heads/master@{#682105}
parent bf21a3ee
......@@ -223,12 +223,23 @@ class CrashHandlerTest : public base::MultiProcessTest,
base::Process process =
base::SpawnMultiProcessTestChild("CrashingProcess", cmd_line, options);
#if !defined(OS_ANDROID)
int exit_code = -1;
EXPECT_TRUE(WaitForMultiprocessTestChildExit(
process, TestTimeouts::action_max_timeout(), &exit_code));
EXPECT_NE(exit_code, kSuccess);
return (exit_code != kSuccess);
#else
// TODO(https://crbug.com/976063): Android's implementation of
// WaitForMultiprocessTestChildExit can't detect child process crashes, this
// can be fixed after minSdkVersion >= Q.
for (int i = 0; i < TestTimeouts::action_max_timeout().InSeconds(); i++) {
if (kill(process.Pid(), 0) && errno == ESRCH)
return true;
sleep(1);
}
return false;
#endif
}
// Given a directory with a single crashpad exception, read and parse the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment