Move creation of rtc::NetworkManager into network emulation layer
Bug: webrtc:10138 Change-Id: I64271fab46a8dccb09f255eb14a4404b0bccdea3 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127285 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Artem Titov <titovartem@webrtc.org> Cr-Commit-Position: refs/heads/master@{#27097}
This commit is contained in:
parent
9699f09eb3
commit
208634763a
@ -281,7 +281,6 @@ if (rtc_include_tests) {
|
||||
"../../../rtc_base:gunit_helpers",
|
||||
"../../../rtc_base:logging",
|
||||
"../../../rtc_base:rtc_base",
|
||||
"../../../rtc_base:rtc_base_tests_utils",
|
||||
"../../../rtc_base:rtc_event",
|
||||
"../../../test:fileutils",
|
||||
"../../../test:test_support",
|
||||
|
||||
@ -13,8 +13,6 @@
|
||||
|
||||
#include "absl/memory/memory.h"
|
||||
#include "call/simulated_network.h"
|
||||
#include "rtc_base/async_invoker.h"
|
||||
#include "rtc_base/fake_network.h"
|
||||
#include "test/gtest.h"
|
||||
#include "test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h"
|
||||
#include "test/pc/e2e/analyzer/video/default_video_quality_analyzer.h"
|
||||
@ -28,16 +26,6 @@ namespace webrtc {
|
||||
namespace test {
|
||||
namespace {
|
||||
|
||||
std::unique_ptr<rtc::NetworkManager> CreateFakeNetworkManager(
|
||||
std::vector<EmulatedEndpoint*> endpoints) {
|
||||
auto network_manager = absl::make_unique<rtc::FakeNetworkManager>();
|
||||
for (auto* endpoint : endpoints) {
|
||||
network_manager->AddInterface(
|
||||
rtc::SocketAddress(endpoint->GetPeerLocalAddress(), /*port=*/0));
|
||||
}
|
||||
return network_manager;
|
||||
}
|
||||
|
||||
void PrintFrameCounters(const std::string& name,
|
||||
const FrameCounters& counters) {
|
||||
RTC_LOG(INFO) << "[" << name << "] Captured : " << counters.captured;
|
||||
@ -96,14 +84,14 @@ TEST(PeerConnectionE2EQualityTestSmokeTest, RunWithEmulatedNetwork) {
|
||||
|
||||
// Setup components. We need to provide rtc::NetworkManager compatible with
|
||||
// emulated network layer.
|
||||
std::unique_ptr<rtc::NetworkManager> alice_network_manager =
|
||||
CreateFakeNetworkManager({alice_endpoint});
|
||||
rtc::NetworkManager* alice_network_manager =
|
||||
network_emulation_manager.CreateNetworkManager({alice_endpoint});
|
||||
auto alice_components = absl::make_unique<InjectableComponents>(
|
||||
alice_network_thread, alice_network_manager.get());
|
||||
std::unique_ptr<rtc::NetworkManager> bob_network_manager =
|
||||
CreateFakeNetworkManager({bob_endpoint});
|
||||
alice_network_thread, alice_network_manager);
|
||||
rtc::NetworkManager* bob_network_manager =
|
||||
network_emulation_manager.CreateNetworkManager({bob_endpoint});
|
||||
auto bob_components = absl::make_unique<InjectableComponents>(
|
||||
bob_network_thread, bob_network_manager.get());
|
||||
bob_network_thread, bob_network_manager);
|
||||
|
||||
// Create analyzers.
|
||||
std::unique_ptr<VideoQualityAnalyzerInterface> video_quality_analyzer =
|
||||
|
||||
@ -32,6 +32,7 @@ rtc_source_set("emulated_network") {
|
||||
"../../../api/units:time_delta",
|
||||
"../../../api/units:timestamp",
|
||||
"../../../rtc_base:rtc_base",
|
||||
"../../../rtc_base:rtc_base_tests_utils",
|
||||
"../../../rtc_base:rtc_task_queue",
|
||||
"../../../rtc_base:safe_minmax",
|
||||
"../../../rtc_base/task_utils:repeating_task",
|
||||
@ -83,7 +84,6 @@ rtc_source_set("network_emulation_pc_unittest") {
|
||||
"../../../rtc_base:gunit_helpers",
|
||||
"../../../rtc_base:logging",
|
||||
"../../../rtc_base:rtc_base",
|
||||
"../../../rtc_base:rtc_base_tests_utils",
|
||||
"../../../rtc_base:rtc_event",
|
||||
"../../../test:test_support",
|
||||
"//third_party/abseil-cpp/absl/memory:memory",
|
||||
|
||||
@ -16,6 +16,7 @@
|
||||
#include "absl/memory/memory.h"
|
||||
#include "api/units/time_delta.h"
|
||||
#include "api/units/timestamp.h"
|
||||
#include "rtc_base/fake_network.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace test {
|
||||
@ -203,6 +204,18 @@ rtc::Thread* NetworkEmulationManager::CreateNetworkThread(
|
||||
return out;
|
||||
}
|
||||
|
||||
rtc::NetworkManager* NetworkEmulationManager::CreateNetworkManager(
|
||||
std::vector<EmulatedEndpoint*> endpoints) {
|
||||
auto network_manager = absl::make_unique<rtc::FakeNetworkManager>();
|
||||
for (auto* endpoint : endpoints) {
|
||||
network_manager->AddInterface(
|
||||
rtc::SocketAddress(endpoint->GetPeerLocalAddress(), /*port=*/0));
|
||||
}
|
||||
rtc::NetworkManager* out = network_manager.get();
|
||||
managers_.push_back(std::move(network_manager));
|
||||
return out;
|
||||
}
|
||||
|
||||
FakeNetworkSocketServer* NetworkEmulationManager::CreateSocketServer(
|
||||
std::vector<EmulatedEndpoint*> endpoints) {
|
||||
auto socket_server =
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
#include "api/units/time_delta.h"
|
||||
#include "api/units/timestamp.h"
|
||||
#include "rtc_base/logging.h"
|
||||
#include "rtc_base/network.h"
|
||||
#include "rtc_base/task_queue.h"
|
||||
#include "rtc_base/task_utils/repeating_task.h"
|
||||
#include "rtc_base/thread.h"
|
||||
@ -71,6 +72,8 @@ class NetworkEmulationManager {
|
||||
PulsedPeaksConfig config);
|
||||
|
||||
rtc::Thread* CreateNetworkThread(std::vector<EmulatedEndpoint*> endpoints);
|
||||
rtc::NetworkManager* CreateNetworkManager(
|
||||
std::vector<EmulatedEndpoint*> endpoints);
|
||||
|
||||
private:
|
||||
FakeNetworkSocketServer* CreateSocketServer(
|
||||
@ -96,6 +99,7 @@ class NetworkEmulationManager {
|
||||
std::vector<std::unique_ptr<PulsedPeaksCrossTraffic>> pulsed_cross_traffics_;
|
||||
std::vector<std::unique_ptr<FakeNetworkSocketServer>> socket_servers_;
|
||||
std::vector<std::unique_ptr<rtc::Thread>> threads_;
|
||||
std::vector<std::unique_ptr<rtc::NetworkManager>> managers_;
|
||||
|
||||
// Must be the last field, so it will be deleted first, because tasks
|
||||
// in the TaskQueue can access other fields of the instance of this class.
|
||||
|
||||
@ -26,8 +26,6 @@
|
||||
#include "p2p/client/basic_port_allocator.h"
|
||||
#include "pc/peer_connection_wrapper.h"
|
||||
#include "pc/test/mock_peer_connection_observers.h"
|
||||
#include "rtc_base/async_invoker.h"
|
||||
#include "rtc_base/fake_network.h"
|
||||
#include "rtc_base/gunit.h"
|
||||
#include "test/gmock.h"
|
||||
#include "test/gtest.h"
|
||||
@ -125,30 +123,26 @@ TEST(NetworkEmulationManagerPCTest, Run) {
|
||||
rtc::scoped_refptr<PeerConnectionInterface> alice_pc;
|
||||
std::unique_ptr<MockPeerConnectionObserver> alice_observer =
|
||||
absl::make_unique<MockPeerConnectionObserver>();
|
||||
std::unique_ptr<rtc::FakeNetworkManager> alice_network_manager =
|
||||
absl::make_unique<rtc::FakeNetworkManager>();
|
||||
alice_network_manager->AddInterface(
|
||||
rtc::SocketAddress(alice_endpoint->GetPeerLocalAddress(), 0));
|
||||
rtc::NetworkManager* alice_network_manager =
|
||||
network_manager.CreateNetworkManager({alice_endpoint});
|
||||
|
||||
rtc::scoped_refptr<PeerConnectionFactoryInterface> bob_pcf;
|
||||
rtc::scoped_refptr<PeerConnectionInterface> bob_pc;
|
||||
std::unique_ptr<MockPeerConnectionObserver> bob_observer =
|
||||
absl::make_unique<MockPeerConnectionObserver>();
|
||||
std::unique_ptr<rtc::FakeNetworkManager> bob_network_manager =
|
||||
absl::make_unique<rtc::FakeNetworkManager>();
|
||||
bob_network_manager->AddInterface(
|
||||
rtc::SocketAddress(bob_endpoint->GetPeerLocalAddress(), 0));
|
||||
rtc::NetworkManager* bob_network_manager =
|
||||
network_manager.CreateNetworkManager({bob_endpoint});
|
||||
|
||||
signaling_thread->Invoke<void>(RTC_FROM_HERE, [&]() {
|
||||
alice_pcf = CreatePeerConnectionFactory(signaling_thread.get(),
|
||||
alice_network_thread);
|
||||
alice_pc = CreatePeerConnection(alice_pcf, alice_observer.get(),
|
||||
alice_network_manager.get());
|
||||
alice_network_manager);
|
||||
|
||||
bob_pcf =
|
||||
CreatePeerConnectionFactory(signaling_thread.get(), bob_network_thread);
|
||||
bob_pc = CreatePeerConnection(bob_pcf, bob_observer.get(),
|
||||
bob_network_manager.get());
|
||||
bob_pc =
|
||||
CreatePeerConnection(bob_pcf, bob_observer.get(), bob_network_manager);
|
||||
});
|
||||
|
||||
std::unique_ptr<PeerConnectionWrapper> alice =
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user