linux: Fix failing exception handler server test

The test broke at:
https://chromium-review.googlesource.com/c/crashpad/crashpad/+/978630
which moved responsibility for sending a ForkBroker request to
PtraceDecider. MockPtraceDecider wasn't updated to send this request,
so no broker was forked.

Change-Id: I8eddcc57c7b45419a72f1239c1cc9ab27e4ac2d2
Reviewed-on: https://chromium-review.googlesource.com/996715
Reviewed-by: Mark Mentovai <mark@chromium.org>
This commit is contained in:
Joshua Peraza 2018-04-04 16:29:46 -07:00
parent ba0bd63254
commit 1ebedb05dd

View File

@ -141,6 +141,25 @@ class MockPtraceStrategyDecider : public PtraceStrategyDecider {
~MockPtraceStrategyDecider() {}
Strategy ChooseStrategy(int sock, const ucred& client_credentials) override {
if (strategy_ == Strategy::kUseBroker) {
ServerToClientMessage message = {};
message.type = ServerToClientMessage::kTypeForkBroker;
Errno status;
bool result = LoggingWriteFile(sock, &message, sizeof(message)) &&
LoggingReadFileExactly(sock, &status, sizeof(status));
EXPECT_TRUE(result);
if (!result) {
return Strategy::kError;
}
if (status != 0) {
errno = status;
ADD_FAILURE() << ErrnoMessage("Handler Client ForkBroker");
return Strategy::kNoPtrace;
}
}
return strategy_;
}