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:
philipel 2018-09-27 11:18:10 +02:00 committed by Commit Bot
parent dc6d5533e1
commit dd8b0d896f

View File

@ -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.