[PCLF] introduce a Peer class which later will be used to perform in-call actions

Bug: b/198796179
Change-Id: Ic4ea2b8d03cbc524334d72ef5c8b3ad1ecd39359
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231182
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34920}
This commit is contained in:
Artem Titov 2021-09-03 22:05:15 +02:00 committed by WebRTC LUCI CQ
parent 463d69afc4
commit 79f82c1a57
3 changed files with 35 additions and 2 deletions

View File

@ -465,6 +465,13 @@ class PeerConnectionE2EQualityTestFixture {
virtual void StopAndReportResults() = 0;
};
// Represents single participant in call and can be used to perform different
// in-call actions. Might be extended in future.
class PeerHandle {
public:
virtual ~PeerHandle() = default;
};
virtual ~PeerConnectionE2EQualityTestFixture() = default;
// Add activity that will be executed on the best effort at least after
@ -493,7 +500,13 @@ class PeerConnectionE2EQualityTestFixture {
// `configurer` function will be used to configure peer in the call.
virtual void AddPeer(rtc::Thread* network_thread,
rtc::NetworkManager* network_manager,
rtc::FunctionView<void(PeerConfigurer*)> configurer) = 0;
rtc::FunctionView<void(PeerConfigurer*)> configurer) {}
virtual PeerHandle* AddAndReturnPeer(
rtc::Thread* network_thread,
rtc::NetworkManager* network_manager,
rtc::FunctionView<void(PeerConfigurer*)> configurer) {
return nullptr;
}
// Runs the media quality test, which includes setting up the call with
// configured participants, running it according to provided `run_params` and
// terminating it properly at the end. During call duration media quality

View File

@ -154,13 +154,23 @@ void PeerConnectionE2EQualityTest::AddQualityMetricsReporter(
quality_metrics_reporters_.push_back(std::move(quality_metrics_reporter));
}
void PeerConnectionE2EQualityTest::AddPeer(
PeerConnectionE2EQualityTest::PeerHandle*
PeerConnectionE2EQualityTest::AddAndReturnPeer(
rtc::Thread* network_thread,
rtc::NetworkManager* network_manager,
rtc::FunctionView<void(PeerConfigurer*)> configurer) {
peer_configurations_.push_back(
std::make_unique<PeerConfigurerImpl>(network_thread, network_manager));
configurer(peer_configurations_.back().get());
peer_handles_.push_back(PeerHandleImpl());
return &peer_handles_.back();
}
void PeerConnectionE2EQualityTest::AddPeer(
rtc::Thread* network_thread,
rtc::NetworkManager* network_manager,
rtc::FunctionView<void(PeerConfigurer*)> configurer) {
AddAndReturnPeer(network_thread, network_manager, configurer);
}
void PeerConnectionE2EQualityTest::Run(RunParams run_params) {

View File

@ -71,6 +71,10 @@ class PeerConnectionE2EQualityTest
void AddPeer(rtc::Thread* network_thread,
rtc::NetworkManager* network_manager,
rtc::FunctionView<void(PeerConfigurer*)> configurer) override;
PeerHandle* AddAndReturnPeer(
rtc::Thread* network_thread,
rtc::NetworkManager* network_manager,
rtc::FunctionView<void(PeerConfigurer*)> configurer) override;
void Run(RunParams run_params) override;
TimeDelta GetRealTestDuration() const override {
@ -80,6 +84,11 @@ class PeerConnectionE2EQualityTest
}
private:
class PeerHandleImpl : public PeerHandle {
public:
~PeerHandleImpl() override = default;
};
// For some functionality some field trials have to be enabled, they will be
// enabled in Run().
std::string GetFieldTrials(const RunParams& run_params);
@ -114,6 +123,7 @@ class PeerConnectionE2EQualityTest
std::unique_ptr<TestActivitiesExecutor> executor_;
std::vector<std::unique_ptr<PeerConfigurerImpl>> peer_configurations_;
std::vector<PeerHandleImpl> peer_handles_;
std::unique_ptr<TestPeer> alice_;
std::unique_ptr<TestPeer> bob_;