Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(436)

Side by Side Diff: webrtc/call/rampup_tests.cc

Issue 2744603002: Don't report perf metrics for packet loss ramp-up tests. (Closed)
Patch Set: Add comment. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/call/rampup_tests.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 bool red, 44 bool red,
45 bool report_perf_stats) 45 bool report_perf_stats)
46 : EndToEndTest(test::CallTest::kLongTimeoutMs), 46 : EndToEndTest(test::CallTest::kLongTimeoutMs),
47 stop_event_(false, false), 47 stop_event_(false, false),
48 clock_(Clock::GetRealTimeClock()), 48 clock_(Clock::GetRealTimeClock()),
49 num_video_streams_(num_video_streams), 49 num_video_streams_(num_video_streams),
50 num_audio_streams_(num_audio_streams), 50 num_audio_streams_(num_audio_streams),
51 num_flexfec_streams_(num_flexfec_streams), 51 num_flexfec_streams_(num_flexfec_streams),
52 rtx_(rtx), 52 rtx_(rtx),
53 red_(red), 53 red_(red),
54 report_perf_stats_(report_perf_stats),
54 sender_call_(nullptr), 55 sender_call_(nullptr),
55 send_stream_(nullptr), 56 send_stream_(nullptr),
56 start_bitrate_bps_(start_bitrate_bps), 57 start_bitrate_bps_(start_bitrate_bps),
57 min_run_time_ms_(min_run_time_ms), 58 min_run_time_ms_(min_run_time_ms),
58 report_perf_stats_(report_perf_stats),
59 expected_bitrate_bps_(0), 59 expected_bitrate_bps_(0),
60 test_start_ms_(-1), 60 test_start_ms_(-1),
61 ramp_up_finished_ms_(-1), 61 ramp_up_finished_ms_(-1),
62 extension_type_(extension_type), 62 extension_type_(extension_type),
63 video_ssrcs_(GenerateSsrcs(num_video_streams_, 100)), 63 video_ssrcs_(GenerateSsrcs(num_video_streams_, 100)),
64 video_rtx_ssrcs_(GenerateSsrcs(num_video_streams_, 200)), 64 video_rtx_ssrcs_(GenerateSsrcs(num_video_streams_, 200)),
65 audio_ssrcs_(GenerateSsrcs(num_audio_streams_, 300)), 65 audio_ssrcs_(GenerateSsrcs(num_audio_streams_, 300)),
66 poller_thread_(&BitrateStatsPollingThread, 66 poller_thread_(&BitrateStatsPollingThread,
67 this, 67 this,
68 "BitrateStatsPollingThread") { 68 "BitrateStatsPollingThread") {
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 poller_thread_.Stop(); 383 poller_thread_.Stop();
384 } 384 }
385 385
386 RampUpDownUpTester::RampUpDownUpTester(size_t num_video_streams, 386 RampUpDownUpTester::RampUpDownUpTester(size_t num_video_streams,
387 size_t num_audio_streams, 387 size_t num_audio_streams,
388 size_t num_flexfec_streams, 388 size_t num_flexfec_streams,
389 unsigned int start_bitrate_bps, 389 unsigned int start_bitrate_bps,
390 const std::string& extension_type, 390 const std::string& extension_type,
391 bool rtx, 391 bool rtx,
392 bool red, 392 bool red,
393 const std::vector<int>& loss_rates) 393 const std::vector<int>& loss_rates,
394 bool report_perf_stats)
394 : RampUpTester(num_video_streams, 395 : RampUpTester(num_video_streams,
395 num_audio_streams, 396 num_audio_streams,
396 num_flexfec_streams, 397 num_flexfec_streams,
397 start_bitrate_bps, 398 start_bitrate_bps,
398 0, 399 0,
399 extension_type, 400 extension_type,
400 rtx, 401 rtx,
401 red, 402 red,
402 true), 403 report_perf_stats),
403 link_rates_({GetHighLinkCapacity(), kLowBandwidthLimitBps / 1000, 404 link_rates_({GetHighLinkCapacity(), kLowBandwidthLimitBps / 1000,
404 GetHighLinkCapacity(), 0}), 405 GetHighLinkCapacity(), 0}),
405 test_state_(kFirstRampup), 406 test_state_(kFirstRampup),
406 next_state_(kTransitionToNextState), 407 next_state_(kTransitionToNextState),
407 state_start_ms_(clock_->TimeInMilliseconds()), 408 state_start_ms_(clock_->TimeInMilliseconds()),
408 interval_start_ms_(clock_->TimeInMilliseconds()), 409 interval_start_ms_(clock_->TimeInMilliseconds()),
409 sent_bytes_(0), 410 sent_bytes_(0),
410 loss_rates_(loss_rates) { 411 loss_rates_(loss_rates) {
411 forward_transport_config_.link_capacity_kbps = link_rates_[test_state_]; 412 forward_transport_config_.link_capacity_kbps = link_rates_[test_state_];
412 forward_transport_config_.queue_delay_ms = 100; 413 forward_transport_config_.queue_delay_ms = 100;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 bool RampUpDownUpTester::ExpectingFec() const { 489 bool RampUpDownUpTester::ExpectingFec() const {
489 return num_flexfec_streams_ > 0 && forward_transport_config_.loss_percent > 0; 490 return num_flexfec_streams_ > 0 && forward_transport_config_.loss_percent > 0;
490 } 491 }
491 492
492 void RampUpDownUpTester::EvolveTestState(int bitrate_bps, bool suspended) { 493 void RampUpDownUpTester::EvolveTestState(int bitrate_bps, bool suspended) {
493 int64_t now = clock_->TimeInMilliseconds(); 494 int64_t now = clock_->TimeInMilliseconds();
494 switch (test_state_) { 495 switch (test_state_) {
495 case kFirstRampup: 496 case kFirstRampup:
496 EXPECT_FALSE(suspended); 497 EXPECT_FALSE(suspended);
497 if (bitrate_bps >= GetExpectedHighBitrate()) { 498 if (bitrate_bps >= GetExpectedHighBitrate()) {
498 webrtc::test::PrintResult("ramp_up_down_up", GetModifierString(), 499 if (report_perf_stats_) {
499 "first_rampup", now - state_start_ms_, "ms", 500 webrtc::test::PrintResult("ramp_up_down_up", GetModifierString(),
500 false); 501 "first_rampup", now - state_start_ms_, "ms",
502 false);
503 }
501 // Apply loss during the transition between states if FEC is enabled. 504 // Apply loss during the transition between states if FEC is enabled.
502 forward_transport_config_.loss_percent = loss_rates_[test_state_]; 505 forward_transport_config_.loss_percent = loss_rates_[test_state_];
503 test_state_ = kTransitionToNextState; 506 test_state_ = kTransitionToNextState;
504 next_state_ = kLowRate; 507 next_state_ = kLowRate;
505 } 508 }
506 break; 509 break;
507 case kLowRate: { 510 case kLowRate: {
508 // Audio streams are never suspended. 511 // Audio streams are never suspended.
509 bool check_suspend_state = num_video_streams_ > 0; 512 bool check_suspend_state = num_video_streams_ > 0;
510 if (bitrate_bps < kExpectedLowBitrateBps && 513 if (bitrate_bps < kExpectedLowBitrateBps &&
511 suspended == check_suspend_state) { 514 suspended == check_suspend_state) {
512 webrtc::test::PrintResult("ramp_up_down_up", GetModifierString(), 515 if (report_perf_stats_) {
513 "rampdown", now - state_start_ms_, "ms", 516 webrtc::test::PrintResult("ramp_up_down_up", GetModifierString(),
514 false); 517 "rampdown", now - state_start_ms_, "ms",
518 false);
519 }
515 // Apply loss during the transition between states if FEC is enabled. 520 // Apply loss during the transition between states if FEC is enabled.
516 forward_transport_config_.loss_percent = loss_rates_[test_state_]; 521 forward_transport_config_.loss_percent = loss_rates_[test_state_];
517 test_state_ = kTransitionToNextState; 522 test_state_ = kTransitionToNextState;
518 next_state_ = kSecondRampup; 523 next_state_ = kSecondRampup;
519 } 524 }
520 break; 525 break;
521 } 526 }
522 case kSecondRampup: 527 case kSecondRampup:
523 if (bitrate_bps >= GetExpectedHighBitrate() && !suspended) { 528 if (bitrate_bps >= GetExpectedHighBitrate() && !suspended) {
524 webrtc::test::PrintResult("ramp_up_down_up", GetModifierString(), 529 if (report_perf_stats_) {
525 "second_rampup", now - state_start_ms_, "ms", 530 webrtc::test::PrintResult("ramp_up_down_up", GetModifierString(),
526 false); 531 "second_rampup", now - state_start_ms_,
527 ReportResult("ramp-up-down-up-average-network-latency", 532 "ms", false);
528 send_transport_->GetAverageDelayMs(), "milliseconds"); 533 ReportResult("ramp-up-down-up-average-network-latency",
534 send_transport_->GetAverageDelayMs(), "milliseconds");
535 }
529 // Apply loss during the transition between states if FEC is enabled. 536 // Apply loss during the transition between states if FEC is enabled.
530 forward_transport_config_.loss_percent = loss_rates_[test_state_]; 537 forward_transport_config_.loss_percent = loss_rates_[test_state_];
531 test_state_ = kTransitionToNextState; 538 test_state_ = kTransitionToNextState;
532 next_state_ = kTestEnd; 539 next_state_ = kTestEnd;
533 } 540 }
534 break; 541 break;
535 case kTestEnd: 542 case kTestEnd:
536 observation_complete_.Set(); 543 observation_complete_.Set();
537 break; 544 break;
538 case kTransitionToNextState: 545 case kTransitionToNextState:
(...skipping 20 matching lines...) Expand all
559 EXPECT_EQ(nullptr, video_send_stream_); 566 EXPECT_EQ(nullptr, video_send_stream_);
560 EXPECT_TRUE(video_receive_streams_.empty()); 567 EXPECT_TRUE(video_receive_streams_.empty());
561 } 568 }
562 }; 569 };
563 570
564 static const uint32_t kStartBitrateBps = 60000; 571 static const uint32_t kStartBitrateBps = 60000;
565 572
566 TEST_F(RampUpTest, UpDownUpAbsSendTimeSimulcastRedRtx) { 573 TEST_F(RampUpTest, UpDownUpAbsSendTimeSimulcastRedRtx) {
567 std::vector<int> loss_rates = {0, 0, 0, 0}; 574 std::vector<int> loss_rates = {0, 0, 0, 0};
568 RampUpDownUpTester test(3, 0, 0, kStartBitrateBps, 575 RampUpDownUpTester test(3, 0, 0, kStartBitrateBps,
569 RtpExtension::kAbsSendTimeUri, true, true, 576 RtpExtension::kAbsSendTimeUri, true, true, loss_rates,
570 loss_rates); 577 true);
571 RunBaseTest(&test); 578 RunBaseTest(&test);
572 } 579 }
573 580
574 TEST_F(RampUpTest, UpDownUpTransportSequenceNumberRtx) { 581 TEST_F(RampUpTest, UpDownUpTransportSequenceNumberRtx) {
575 std::vector<int> loss_rates = {0, 0, 0, 0}; 582 std::vector<int> loss_rates = {0, 0, 0, 0};
576 RampUpDownUpTester test(3, 0, 0, kStartBitrateBps, 583 RampUpDownUpTester test(3, 0, 0, kStartBitrateBps,
577 RtpExtension::kTransportSequenceNumberUri, true, 584 RtpExtension::kTransportSequenceNumberUri, true,
578 false, loss_rates); 585 false, loss_rates, true);
579 RunBaseTest(&test); 586 RunBaseTest(&test);
580 } 587 }
581 588
589 // TODO(holmer): Tests which don't report perf stats should be moved to a
590 // different executable since they per definition are not perf tests.
582 TEST_F(RampUpTest, UpDownUpTransportSequenceNumberPacketLoss) { 591 TEST_F(RampUpTest, UpDownUpTransportSequenceNumberPacketLoss) {
583 std::vector<int> loss_rates = {20, 0, 0, 0}; 592 std::vector<int> loss_rates = {20, 0, 0, 0};
584 RampUpDownUpTester test(1, 0, 1, kStartBitrateBps, 593 RampUpDownUpTester test(1, 0, 1, kStartBitrateBps,
585 RtpExtension::kTransportSequenceNumberUri, true, 594 RtpExtension::kTransportSequenceNumberUri, true,
586 false, loss_rates); 595 false, loss_rates, false);
587 RunBaseTest(&test); 596 RunBaseTest(&test);
588 } 597 }
589 598
590 TEST_F(RampUpTest, UpDownUpAudioVideoTransportSequenceNumberRtx) { 599 TEST_F(RampUpTest, UpDownUpAudioVideoTransportSequenceNumberRtx) {
591 std::vector<int> loss_rates = {0, 0, 0, 0}; 600 std::vector<int> loss_rates = {0, 0, 0, 0};
592 RampUpDownUpTester test(3, 1, 0, kStartBitrateBps, 601 RampUpDownUpTester test(3, 1, 0, kStartBitrateBps,
593 RtpExtension::kTransportSequenceNumberUri, true, 602 RtpExtension::kTransportSequenceNumberUri, true,
594 false, loss_rates); 603 false, loss_rates, true);
595 RunBaseTest(&test); 604 RunBaseTest(&test);
596 } 605 }
597 606
598 TEST_F(RampUpTest, UpDownUpAudioTransportSequenceNumberRtx) { 607 TEST_F(RampUpTest, UpDownUpAudioTransportSequenceNumberRtx) {
599 std::vector<int> loss_rates = {0, 0, 0, 0}; 608 std::vector<int> loss_rates = {0, 0, 0, 0};
600 RampUpDownUpTester test(0, 1, 0, kStartBitrateBps, 609 RampUpDownUpTester test(0, 1, 0, kStartBitrateBps,
601 RtpExtension::kTransportSequenceNumberUri, true, 610 RtpExtension::kTransportSequenceNumberUri, true,
602 false, loss_rates); 611 false, loss_rates, true);
603 RunBaseTest(&test); 612 RunBaseTest(&test);
604 } 613 }
605 614
606 TEST_F(RampUpTest, TOffsetSimulcastRedRtx) { 615 TEST_F(RampUpTest, TOffsetSimulcastRedRtx) {
607 RampUpTester test(3, 0, 0, 0, 0, RtpExtension::kTimestampOffsetUri, true, 616 RampUpTester test(3, 0, 0, 0, 0, RtpExtension::kTimestampOffsetUri, true,
608 true, true); 617 true, true);
609 RunBaseTest(&test); 618 RunBaseTest(&test);
610 } 619 }
611 620
612 TEST_F(RampUpTest, AbsSendTime) { 621 TEST_F(RampUpTest, AbsSendTime) {
(...skipping 26 matching lines...) Expand all
639 RunBaseTest(&test); 648 RunBaseTest(&test);
640 } 649 }
641 650
642 TEST_F(RampUpTest, AudioTransportSequenceNumber) { 651 TEST_F(RampUpTest, AudioTransportSequenceNumber) {
643 RampUpTester test(0, 1, 0, 300000, 10000, 652 RampUpTester test(0, 1, 0, 300000, 10000,
644 RtpExtension::kTransportSequenceNumberUri, false, false, 653 RtpExtension::kTransportSequenceNumberUri, false, false,
645 false); 654 false);
646 RunBaseTest(&test); 655 RunBaseTest(&test);
647 } 656 }
648 } // namespace webrtc 657 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/call/rampup_tests.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698