Parameterized full stack tests to test the new generic descriptor.
Can't land until bugs.webrtc.org/9783 has been resolved. Bug: webrtc:9361 Change-Id: Ib5412432ebc46fd77c7f4e92bc546c55ba574b8f Reviewed-on: https://webrtc-review.googlesource.com/c/102280 Reviewed-by: Stefan Holmer <stefan@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Philip Eliasson <philipel@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24986}
This commit is contained in:
parent
dc6d5533e1
commit
dd8b0d896f
@ -86,6 +86,20 @@ std::string AppendFieldTrials(std::string new_trial_string) {
|
||||
// logs // bool
|
||||
// };
|
||||
|
||||
class GenericDescriptorTest : public ::testing::TestWithParam<std::string> {
|
||||
public:
|
||||
GenericDescriptorTest() : field_trial_(GetParam()) {}
|
||||
|
||||
std::string GetTestName(std::string base) {
|
||||
if (field_trial::IsEnabled("WebRTC-GenericDescriptor"))
|
||||
base += "_generic_descriptor";
|
||||
return base;
|
||||
}
|
||||
|
||||
private:
|
||||
test::ScopedFieldTrials field_trial_;
|
||||
};
|
||||
|
||||
#if !defined(RTC_DISABLE_VP9)
|
||||
TEST(FullStackTest, ForemanCifWithoutPacketLossVp9) {
|
||||
auto fixture = CreateVideoQualityTestFixture();
|
||||
@ -99,15 +113,15 @@ TEST(FullStackTest, ForemanCifWithoutPacketLossVp9) {
|
||||
fixture->RunWithAnalyzer(foreman_cif);
|
||||
}
|
||||
|
||||
TEST(FullStackTest, ForemanCifPlr5Vp9) {
|
||||
TEST_P(GenericDescriptorTest, ForemanCifPlr5Vp9) {
|
||||
auto fixture = CreateVideoQualityTestFixture();
|
||||
ParamsWithLogging foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP9", 1,
|
||||
0, 0, false, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_VP9", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.analyzer = {GetTestName("foreman_cif_delay_50_0_plr_5_VP9"), 0.0,
|
||||
0.0, kFullStackTestDurationSecs};
|
||||
foreman_cif.config->loss_percent = 5;
|
||||
foreman_cif.config->queue_delay_ms = 50;
|
||||
fixture->RunWithAnalyzer(foreman_cif);
|
||||
@ -186,7 +200,7 @@ TEST(FullStackTest, MAYBE_ParisQcifWithoutPacketLoss) {
|
||||
fixture->RunWithAnalyzer(paris_qcif);
|
||||
}
|
||||
|
||||
TEST(FullStackTest, ForemanCifWithoutPacketLoss) {
|
||||
TEST_P(GenericDescriptorTest, ForemanCifWithoutPacketLoss) {
|
||||
auto fixture = CreateVideoQualityTestFixture();
|
||||
// TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif.
|
||||
ParamsWithLogging foreman_cif;
|
||||
@ -194,20 +208,20 @@ TEST(FullStackTest, ForemanCifWithoutPacketLoss) {
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 700000,
|
||||
700000, 700000, false, "VP8", 1,
|
||||
0, 0, false, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.analyzer = {GetTestName("foreman_cif_net_delay_0_0_plr_0"), 0.0,
|
||||
0.0, kFullStackTestDurationSecs};
|
||||
fixture->RunWithAnalyzer(foreman_cif);
|
||||
}
|
||||
|
||||
TEST(FullStackTest, ForemanCif30kbpsWithoutPacketLoss) {
|
||||
TEST_P(GenericDescriptorTest, ForemanCif30kbpsWithoutPacketLoss) {
|
||||
auto fixture = CreateVideoQualityTestFixture();
|
||||
ParamsWithLogging foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video[0] = {true, 352, 288, 10, 30000,
|
||||
30000, 30000, false, "VP8", 1,
|
||||
0, 0, false, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_30kbps_net_delay_0_0_plr_0", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.analyzer = {GetTestName("foreman_cif_30kbps_net_delay_0_0_plr_0"),
|
||||
0.0, 0.0, kFullStackTestDurationSecs};
|
||||
fixture->RunWithAnalyzer(foreman_cif);
|
||||
}
|
||||
|
||||
@ -226,29 +240,29 @@ TEST(FullStackTest, ForemanCifLink150kbpsWithoutPacketLoss) {
|
||||
fixture->RunWithAnalyzer(foreman_cif);
|
||||
}
|
||||
|
||||
TEST(FullStackTest, ForemanCifPlr5) {
|
||||
TEST_P(GenericDescriptorTest, ForemanCifPlr5) {
|
||||
auto fixture = CreateVideoQualityTestFixture();
|
||||
ParamsWithLogging foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP8", 1,
|
||||
0, 0, false, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5", 0.0, 0.0,
|
||||
foreman_cif.analyzer = {GetTestName("foreman_cif_delay_50_0_plr_5"), 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.config->loss_percent = 5;
|
||||
foreman_cif.config->queue_delay_ms = 50;
|
||||
fixture->RunWithAnalyzer(foreman_cif);
|
||||
}
|
||||
|
||||
TEST(FullStackTest, ForemanCifPlr5Ulpfec) {
|
||||
TEST_P(GenericDescriptorTest, ForemanCifPlr5Ulpfec) {
|
||||
auto fixture = CreateVideoQualityTestFixture();
|
||||
ParamsWithLogging foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP8", 1,
|
||||
0, 0, true, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_ulpfec", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.analyzer = {GetTestName("foreman_cif_delay_50_0_plr_5_ulpfec"),
|
||||
0.0, 0.0, kFullStackTestDurationSecs};
|
||||
foreman_cif.config->loss_percent = 5;
|
||||
foreman_cif.config->queue_delay_ms = 50;
|
||||
fixture->RunWithAnalyzer(foreman_cif);
|
||||
@ -324,15 +338,15 @@ TEST(FullStackTest, ForemanCif30kbpsWithoutPacketlossH264) {
|
||||
fixture->RunWithAnalyzer(foreman_cif);
|
||||
}
|
||||
|
||||
TEST(FullStackTest, ForemanCifPlr5H264) {
|
||||
TEST_P(GenericDescriptorTest, ForemanCifPlr5H264) {
|
||||
auto fixture = CreateVideoQualityTestFixture();
|
||||
ParamsWithLogging foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "H264", 1,
|
||||
0, 0, false, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.analyzer = {GetTestName("foreman_cif_delay_50_0_plr_5_H264"), 0.0,
|
||||
0.0, kFullStackTestDurationSecs};
|
||||
foreman_cif.config->loss_percent = 5;
|
||||
foreman_cif.config->queue_delay_ms = 50;
|
||||
fixture->RunWithAnalyzer(foreman_cif);
|
||||
@ -432,15 +446,15 @@ TEST(FullStackTest, ForemanCif500kbps100ms) {
|
||||
fixture->RunWithAnalyzer(foreman_cif);
|
||||
}
|
||||
|
||||
TEST(FullStackTest, ForemanCif500kbps100msLimitedQueue) {
|
||||
TEST_P(GenericDescriptorTest, ForemanCif500kbps100msLimitedQueue) {
|
||||
auto fixture = CreateVideoQualityTestFixture();
|
||||
ParamsWithLogging foreman_cif;
|
||||
foreman_cif.call.send_side_bwe = true;
|
||||
foreman_cif.video[0] = {true, 352, 288, 30, 30000,
|
||||
500000, 2000000, false, "VP8", 1,
|
||||
0, 0, false, false, false, "foreman_cif"};
|
||||
foreman_cif.analyzer = {"foreman_cif_500kbps_100ms_32pkts_queue", 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
foreman_cif.analyzer = {GetTestName("foreman_cif_500kbps_100ms_32pkts_queue"),
|
||||
0.0, 0.0, kFullStackTestDurationSecs};
|
||||
foreman_cif.config->queue_length_packets = 32;
|
||||
foreman_cif.config->queue_delay_ms = 100;
|
||||
foreman_cif.config->link_capacity_kbps = 500;
|
||||
@ -511,7 +525,7 @@ TEST(FullStackTest, ConferenceMotionHd1TLModerateLimits) {
|
||||
fixture->RunWithAnalyzer(conf_motion_hd);
|
||||
}
|
||||
|
||||
TEST(FullStackTest, ConferenceMotionHd2TLModerateLimits) {
|
||||
TEST_P(GenericDescriptorTest, ConferenceMotionHd2TLModerateLimits) {
|
||||
auto fixture = CreateVideoQualityTestFixture();
|
||||
ParamsWithLogging conf_motion_hd;
|
||||
conf_motion_hd.call.send_side_bwe = true;
|
||||
@ -519,8 +533,9 @@ TEST(FullStackTest, ConferenceMotionHd2TLModerateLimits) {
|
||||
true, 1280, 720, 50, 30000,
|
||||
3000000, 3000000, false, "VP8", 2,
|
||||
-1, 0, false, false, false, "ConferenceMotion_1280_720_50"};
|
||||
conf_motion_hd.analyzer = {"conference_motion_hd_2tl_moderate_limits", 0.0,
|
||||
0.0, kFullStackTestDurationSecs};
|
||||
conf_motion_hd.analyzer = {
|
||||
GetTestName("conference_motion_hd_2tl_moderate_limits"), 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
conf_motion_hd.config->queue_length_packets = 50;
|
||||
conf_motion_hd.config->loss_percent = 3;
|
||||
conf_motion_hd.config->queue_delay_ms = 100;
|
||||
@ -655,7 +670,7 @@ TEST(FullStackTest, ScreenshareSlidesVP8_2TL_Scroll) {
|
||||
fixture->RunWithAnalyzer(config);
|
||||
}
|
||||
|
||||
TEST(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNet) {
|
||||
TEST_P(GenericDescriptorTest, ScreenshareSlidesVP8_2TL_LossyNet) {
|
||||
auto fixture = CreateVideoQualityTestFixture();
|
||||
ParamsWithLogging screenshare;
|
||||
screenshare.call.send_side_bwe = true;
|
||||
@ -663,7 +678,7 @@ TEST(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNet) {
|
||||
1000000, false, "VP8", 2, 1, 400000,
|
||||
false, false, false, ""};
|
||||
screenshare.screenshare[0] = {true, false, 10};
|
||||
screenshare.analyzer = {"screenshare_slides_lossy_net", 0.0, 0.0,
|
||||
screenshare.analyzer = {GetTestName("screenshare_slides_lossy_net"), 0.0, 0.0,
|
||||
kFullStackTestDurationSecs};
|
||||
screenshare.config->loss_percent = 5;
|
||||
screenshare.config->queue_delay_ms = 200;
|
||||
@ -1057,6 +1072,11 @@ TEST(FullStackTest, MAYBE_LargeRoomVP8_50thumb) {
|
||||
fixture->RunWithAnalyzer(large_room);
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(FullStackTest,
|
||||
GenericDescriptorTest,
|
||||
::testing::Values("WebRTC-GenericDescriptor/Disabled/",
|
||||
"WebRTC-GenericDescriptor/Enabled/"));
|
||||
|
||||
class DualStreamsTest : public ::testing::TestWithParam<int> {};
|
||||
|
||||
// Disable dual video test on mobile device becuase it's too heavy.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user