forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixed: 1162198 Change-Id: Ief850903a7e6ba3d7c5c0129704d1f80aa3467ce Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2612085 Commit-Queue: Ken Rockot <rockot@google.com> Reviewed-by: Ken Rockot <rockot@google.com> Reviewed-by: Robert Sesek <rsesek@chromium.org> Cr-Commit-Position: refs/heads/master@{#840942}
- Loading branch information
Showing
5 changed files
with
58 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
// Copyright 2013 The Chromium Authors. All rights reserved. | ||
// Use of this source code is governed by a BSD-style license that can be | ||
// found in the LICENSE file. | ||
|
||
#include "base/logging.h" | ||
#include "mojo/core/core.h" | ||
#include "mojo/core/test/mojo_test_base.h" | ||
#include "mojo/public/c/system/types.h" | ||
#include "testing/gtest/include/gtest/gtest.h" | ||
|
||
namespace mojo { | ||
namespace core { | ||
namespace { | ||
|
||
using NodeControllerTest = test::MojoTestBase; | ||
|
||
TEST_F(NodeControllerTest, AcceptInvitationFailure) { | ||
// Spawn a child process that will send an invalid AcceptInvitation | ||
// NodeChannel message. This is a regression test for | ||
// https://crbug.com/1162198. | ||
RunTestClient("SendInvalidAcceptInvitation", | ||
[&](MojoHandle h) { WriteMessage(h, "hi"); }); | ||
} | ||
|
||
DEFINE_TEST_CLIENT_TEST_WITH_PIPE(SendInvalidAcceptInvitation, | ||
NodeControllerTest, | ||
h) { | ||
// A little communication to synchronize against Mojo bringup. By the time | ||
// this read completes, we must have an internal NodeController with the | ||
// parent test process connected as its broker. | ||
EXPECT_EQ("hi", ReadMessage(h)); | ||
|
||
// Send an unexpected AcceptInvitation message to the parent process. This | ||
// exercises the regression code path in the parent process. | ||
NodeController* controller = Core::Get()->GetNodeController(); | ||
scoped_refptr<NodeChannel> channel = controller->GetBrokerChannel(); | ||
channel->AcceptInvitation(ports::NodeName{0, 0}, ports::NodeName{0, 0}); | ||
} | ||
|
||
} // namespace | ||
} // namespace core | ||
} // namespace mojo |