| Index: webrtc/base/physicalsocketserver_unittest.cc
|
| diff --git a/webrtc/base/physicalsocketserver_unittest.cc b/webrtc/base/physicalsocketserver_unittest.cc
|
| index d0083bdcfcfc5771b8c1d3268febdf1a3434ff6b..63d2f0d92c80a14fad1965ef77be2de851094ce6 100644
|
| --- a/webrtc/base/physicalsocketserver_unittest.cc
|
| +++ b/webrtc/base/physicalsocketserver_unittest.cc
|
| @@ -89,13 +89,17 @@ class FakePhysicalSocketServer : public PhysicalSocketServer {
|
| class FakeNetworkBinder : public NetworkBinderInterface {
|
| public:
|
| NetworkBindingResult BindSocketToNetwork(int, const IPAddress&) override {
|
| + ++num_binds_;
|
| return result_;
|
| }
|
|
|
| void set_result(NetworkBindingResult result) { result_ = result; }
|
|
|
| + int num_binds() { return num_binds_; }
|
| +
|
| private:
|
| NetworkBindingResult result_ = NetworkBindingResult::SUCCESS;
|
| + int num_binds_ = 0;
|
| };
|
|
|
| class PhysicalSocketTest : public SocketTest {
|
| @@ -441,6 +445,18 @@ TEST_F(PhysicalSocketTest,
|
| server_->set_network_binder(nullptr);
|
| }
|
|
|
| +// Network binder shouldn't be used if the socket is bound to the "any" IP.
|
| +TEST_F(PhysicalSocketTest,
|
| + NetworkBinderIsNotUsedForAnyIp) {
|
| + FakeNetworkBinder fake_network_binder;
|
| + server_->set_network_binder(&fake_network_binder);
|
| + std::unique_ptr<AsyncSocket> socket(
|
| + server_->CreateAsyncSocket(AF_INET, SOCK_DGRAM));
|
| + EXPECT_EQ(0, socket->Bind(SocketAddress("0.0.0.0", 0)));
|
| + EXPECT_EQ(0, fake_network_binder.num_binds());
|
| + server_->set_network_binder(nullptr);
|
| +}
|
| +
|
| // For a loopback interface, failures to bind to the interface should be
|
| // tolerated.
|
| TEST_F(PhysicalSocketTest,
|
|
|