Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Unified Diff: webrtc/pc/ortcfactory_unittest.cc

Issue 2675173003: Adding "adapter" ORTC objects on top of ChannelManager/BaseChannel/etc. (Closed)
Patch Set: Add memcheck suppression for end-to-end tests. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/pc/ortcfactory.cc ('k') | webrtc/pc/peerconnection.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/pc/ortcfactory_unittest.cc
diff --git a/webrtc/pc/ortcfactory_unittest.cc b/webrtc/pc/ortcfactory_unittest.cc
deleted file mode 100644
index 53286312c790f47f9d8fc2b3708e9a35acd414c8..0000000000000000000000000000000000000000
--- a/webrtc/pc/ortcfactory_unittest.cc
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright 2017 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#include <memory>
-
-#include "webrtc/api/ortcfactoryinterface.h"
-#include "webrtc/base/fakenetwork.h"
-#include "webrtc/base/gunit.h"
-#include "webrtc/base/physicalsocketserver.h"
-#include "webrtc/base/virtualsocketserver.h"
-#include "webrtc/p2p/base/udptransport.h"
-
-namespace {
-
-const int kDefaultTimeout = 10000; // 10 seconds.
-static const rtc::IPAddress kIPv4LocalHostAddress =
- rtc::IPAddress(0x7F000001); // 127.0.0.1
-
-class PacketReceiver : public sigslot::has_slots<> {
- public:
- explicit PacketReceiver(rtc::PacketTransportInternal* transport) {
- transport->SignalReadPacket.connect(this, &PacketReceiver::OnReadPacket);
- }
- int packets_read() const { return packets_read_; }
-
- private:
- void OnReadPacket(rtc::PacketTransportInternal*,
- const char*,
- size_t,
- const rtc::PacketTime&,
- int) {
- ++packets_read_;
- }
-
- int packets_read_ = 0;
-};
-
-} // namespace
-
-namespace webrtc {
-
-// Used to test that things work end-to-end when using the default
-// implementations of threads/etc. provided by OrtcFactory, with the exception
-// of using a virtual network.
-//
-// By default, the virtual network manager doesn't enumerate any networks, but
-// sockets can still be created in this state.
-class OrtcFactoryTest : public testing::Test {
- public:
- OrtcFactoryTest()
- : virtual_socket_server_(&physical_socket_server_),
- network_thread_(&virtual_socket_server_),
- ortc_factory_(OrtcFactoryInterface::Create(&network_thread_,
- nullptr,
- &fake_network_manager_,
- nullptr)) {
- // Sockets are bound to the ANY address, so this is needed to tell the
- // virtual network which address to use in this case.
- virtual_socket_server_.SetDefaultRoute(kIPv4LocalHostAddress);
- network_thread_.Start();
- }
-
- protected:
- rtc::PhysicalSocketServer physical_socket_server_;
- rtc::VirtualSocketServer virtual_socket_server_;
- rtc::Thread network_thread_;
- rtc::FakeNetworkManager fake_network_manager_;
- std::unique_ptr<OrtcFactoryInterface> ortc_factory_;
-};
-
-TEST_F(OrtcFactoryTest, EndToEndUdpTransport) {
- std::unique_ptr<UdpTransportInterface> transport1 =
- ortc_factory_->CreateUdpTransport(AF_INET);
- std::unique_ptr<UdpTransportInterface> transport2 =
- ortc_factory_->CreateUdpTransport(AF_INET);
- ASSERT_NE(nullptr, transport1);
- ASSERT_NE(nullptr, transport2);
- // Sockets are bound to the ANY address, so we need to provide the IP address
- // explicitly.
- transport1->SetRemoteAddress(
- rtc::SocketAddress(virtual_socket_server_.GetDefaultRoute(AF_INET),
- transport2->GetLocalAddress().port()));
- transport2->SetRemoteAddress(
- rtc::SocketAddress(virtual_socket_server_.GetDefaultRoute(AF_INET),
- transport1->GetLocalAddress().port()));
-
- // TODO(deadbeef): Once there's something (RTP senders/receivers) that can
- // use UdpTransport end-to-end, use that for this end-to-end test instead of
- // making assumptions about the implementation.
- //
- // For now, this assumes the returned object is a UdpTransportProxy that wraps
- // a UdpTransport.
- cricket::UdpTransport* internal_transport1 =
- static_cast<UdpTransportProxyWithInternal<cricket::UdpTransport>*>(
- transport1.get())
- ->internal();
- cricket::UdpTransport* internal_transport2 =
- static_cast<UdpTransportProxyWithInternal<cricket::UdpTransport>*>(
- transport2.get())
- ->internal();
- // Need to call internal "SendPacket" method on network thread.
- network_thread_.Invoke<void>(
- RTC_FROM_HERE, [internal_transport1, internal_transport2]() {
- PacketReceiver receiver1(internal_transport1);
- PacketReceiver receiver2(internal_transport2);
- internal_transport1->SendPacket("foo", sizeof("foo"),
- rtc::PacketOptions(), 0);
- internal_transport2->SendPacket("foo", sizeof("foo"),
- rtc::PacketOptions(), 0);
- EXPECT_EQ_WAIT(1, receiver1.packets_read(), kDefaultTimeout);
- EXPECT_EQ_WAIT(1, receiver2.packets_read(), kDefaultTimeout);
- });
-}
-
-} // namespace webrtc
« no previous file with comments | « webrtc/pc/ortcfactory.cc ('k') | webrtc/pc/peerconnection.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698