From dd8b0d896f9d0d9fe0a3bbd4d20b3ca3093e1ad2 Mon Sep 17 00:00:00 2001 From: philipel Date: Thu, 27 Sep 2018 11:18:10 +0200 Subject: [PATCH] Parameterized full stack tests to test the new generic descriptor. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Erik Språng Commit-Queue: Philip Eliasson Cr-Commit-Position: refs/heads/master@{#24986} --- video/full_stack_tests.cc | 70 +++++++++++++++++++++++++-------------- 1 file changed, 45 insertions(+), 25 deletions(-) diff --git a/video/full_stack_tests.cc b/video/full_stack_tests.cc index f1065e4f68..5e3facde6a 100644 --- a/video/full_stack_tests.cc +++ b/video/full_stack_tests.cc @@ -86,6 +86,20 @@ std::string AppendFieldTrials(std::string new_trial_string) { // logs // bool // }; +class GenericDescriptorTest : public ::testing::TestWithParam { + 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 {}; // Disable dual video test on mobile device becuase it's too heavy.