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

Side by Side Diff: webrtc/logging/rtc_event_log/rtc_event_log_unittest.cc

Issue 2666533002: Add probe logging to RtcEventLog. (Closed)
Patch Set: |min_probes| --> |min_packets| Created 3 years, 10 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
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 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 482 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 RtcEventLogTestHelper::VerifyRtcpEvent(parsed_log, 2, kOutgoingPacket, 493 RtcEventLogTestHelper::VerifyRtcpEvent(parsed_log, 2, kOutgoingPacket,
494 MediaType::VIDEO, rtcp_packet.data(), 494 MediaType::VIDEO, rtcp_packet.data(),
495 rtcp_packet.size()); 495 rtcp_packet.size());
496 496
497 RtcEventLogTestHelper::VerifyLogEndEvent(parsed_log, 3); 497 RtcEventLogTestHelper::VerifyLogEndEvent(parsed_log, 3);
498 498
499 // Clean up temporary file - can be pretty slow. 499 // Clean up temporary file - can be pretty slow.
500 remove(temp_filename.c_str()); 500 remove(temp_filename.c_str());
501 } 501 }
502 502
503 TEST(RtcEventLogTest, LogProbeClusterCreatedAndReadBack) {
504 Random prng(794613);
505
506 int bitrate_bps0 = prng.Rand(0, 10000000);
507 int bitrate_bps1 = prng.Rand(0, 10000000);
508 int bitrate_bps2 = prng.Rand(0, 10000000);
509 int min_probes0 = prng.Rand(0, 100);
terelius 2017/02/20 14:00:31 probes -> packets
510 int min_probes1 = prng.Rand(0, 100);
511 int min_probes2 = prng.Rand(0, 100);
512 int min_bytes0 = prng.Rand(0, 10000);
513 int min_bytes1 = prng.Rand(0, 10000);
514 int min_bytes2 = prng.Rand(0, 10000);
515
516 // Find the name of the current test, in order to use it as a temporary
517 // filename.
518 auto test_info = ::testing::UnitTest::GetInstance()->current_test_info();
519 const std::string temp_filename =
520 test::OutputPath() + test_info->test_case_name() + test_info->name();
521
522 rtc::ScopedFakeClock fake_clock;
523 fake_clock.SetTimeMicros(prng.Rand<uint32_t>());
524 std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create());
525
526 log_dumper->StartLogging(temp_filename, 10000000);
527 log_dumper->LogProbeClusterCreated(0, bitrate_bps0, min_probes0, min_bytes0);
528 fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000));
529 log_dumper->LogProbeClusterCreated(1, bitrate_bps1, min_probes1, min_bytes1);
530 fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000));
531 log_dumper->LogProbeClusterCreated(2, bitrate_bps2, min_probes2, min_bytes2);
532 fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000));
533 log_dumper->StopLogging();
534
535 // Read the generated file from disk.
536 ParsedRtcEventLog parsed_log;
537 ASSERT_TRUE(parsed_log.ParseFile(temp_filename));
538
539 // Verify that what we read back from the event log is the same as
540 // what we wrote down.
541 EXPECT_EQ(5u, parsed_log.GetNumberOfEvents());
542 RtcEventLogTestHelper::VerifyLogStartEvent(parsed_log, 0);
543 RtcEventLogTestHelper::VerifyBweProbeCluster(parsed_log, 1, 0, bitrate_bps0,
544 min_probes0, min_bytes0);
545 RtcEventLogTestHelper::VerifyBweProbeCluster(parsed_log, 2, 1, bitrate_bps1,
546 min_probes1, min_bytes1);
547 RtcEventLogTestHelper::VerifyBweProbeCluster(parsed_log, 3, 2, bitrate_bps2,
548 min_probes2, min_bytes2);
549 RtcEventLogTestHelper::VerifyLogEndEvent(parsed_log, 4);
550
551 // Clean up temporary file - can be pretty slow.
552 remove(temp_filename.c_str());
553 }
554
555 TEST(RtcEventLogTest, LogProbeResultSuccessAndReadBack) {
556 Random prng(192837);
557
558 int bitrate_bps0 = prng.Rand(0, 10000000);
559 int bitrate_bps1 = prng.Rand(0, 10000000);
560 int bitrate_bps2 = prng.Rand(0, 10000000);
561
562 // Find the name of the current test, in order to use it as a temporary
563 // filename.
564 auto test_info = ::testing::UnitTest::GetInstance()->current_test_info();
565 const std::string temp_filename =
566 test::OutputPath() + test_info->test_case_name() + test_info->name();
567
568 rtc::ScopedFakeClock fake_clock;
569 fake_clock.SetTimeMicros(prng.Rand<uint32_t>());
570 std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create());
571
572 log_dumper->StartLogging(temp_filename, 10000000);
573 log_dumper->LogProbeResultSuccess(0, bitrate_bps0);
574 fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000));
575 log_dumper->LogProbeResultSuccess(1, bitrate_bps1);
576 fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000));
577 log_dumper->LogProbeResultSuccess(2, bitrate_bps2);
578 fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000));
579 log_dumper->StopLogging();
580
581 // Read the generated file from disk.
582 ParsedRtcEventLog parsed_log;
583 ASSERT_TRUE(parsed_log.ParseFile(temp_filename));
584
585 // Verify that what we read back from the event log is the same as
586 // what we wrote down.
587 EXPECT_EQ(5u, parsed_log.GetNumberOfEvents());
588 RtcEventLogTestHelper::VerifyLogStartEvent(parsed_log, 0);
589 RtcEventLogTestHelper::VerifyProbeResultSuccess(parsed_log, 1, 0,
590 bitrate_bps0);
591 RtcEventLogTestHelper::VerifyProbeResultSuccess(parsed_log, 2, 1,
592 bitrate_bps1);
593 RtcEventLogTestHelper::VerifyProbeResultSuccess(parsed_log, 3, 2,
594 bitrate_bps2);
595 RtcEventLogTestHelper::VerifyLogEndEvent(parsed_log, 4);
596
597 // Clean up temporary file - can be pretty slow.
598 remove(temp_filename.c_str());
599 }
600
601 TEST(RtcEventLogTest, LogProbeResultFailureAndReadBack) {
602 Random prng(192837);
603
604 // Find the name of the current test, in order to use it as a temporary
605 // filename.
606 auto test_info = ::testing::UnitTest::GetInstance()->current_test_info();
607 const std::string temp_filename =
608 test::OutputPath() + test_info->test_case_name() + test_info->name();
609
610 rtc::ScopedFakeClock fake_clock;
611 fake_clock.SetTimeMicros(prng.Rand<uint32_t>());
612 std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create());
613
614 log_dumper->StartLogging(temp_filename, 10000000);
615 log_dumper->LogProbeResultFailure(
616 0, ProbeFailureReason::kInvalidSendReceiveInterval);
617 fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000));
618 log_dumper->LogProbeResultFailure(
619 1, ProbeFailureReason::kInvalidSendReceiveRatio);
620 fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000));
621 log_dumper->LogProbeResultFailure(2, ProbeFailureReason::kTimeout);
622 fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000));
623 log_dumper->StopLogging();
624
625 // Read the generated file from disk.
626 ParsedRtcEventLog parsed_log;
627 ASSERT_TRUE(parsed_log.ParseFile(temp_filename));
628
629 // Verify that what we read back from the event log is the same as
630 // what we wrote down.
631 EXPECT_EQ(5u, parsed_log.GetNumberOfEvents());
632 RtcEventLogTestHelper::VerifyLogStartEvent(parsed_log, 0);
633 RtcEventLogTestHelper::VerifyProbeResultFailure(
634 parsed_log, 1, 0, ProbeFailureReason::kInvalidSendReceiveInterval);
635 RtcEventLogTestHelper::VerifyProbeResultFailure(
636 parsed_log, 2, 1, ProbeFailureReason::kInvalidSendReceiveRatio);
637 RtcEventLogTestHelper::VerifyProbeResultFailure(parsed_log, 3, 2,
638 ProbeFailureReason::kTimeout);
639 RtcEventLogTestHelper::VerifyLogEndEvent(parsed_log, 4);
640
641 // Clean up temporary file - can be pretty slow.
642 remove(temp_filename.c_str());
643 }
644
503 class ConfigReadWriteTest { 645 class ConfigReadWriteTest {
504 public: 646 public:
505 ConfigReadWriteTest() : prng(987654321) {} 647 ConfigReadWriteTest() : prng(987654321) {}
506 virtual ~ConfigReadWriteTest() {} 648 virtual ~ConfigReadWriteTest() {}
507 virtual void GenerateConfig(uint32_t extensions_bitvector) = 0; 649 virtual void GenerateConfig(uint32_t extensions_bitvector) = 0;
508 virtual void VerifyConfig(const ParsedRtcEventLog& parsed_log, 650 virtual void VerifyConfig(const ParsedRtcEventLog& parsed_log,
509 size_t index) = 0; 651 size_t index) = 0;
510 virtual void LogConfig(RtcEventLog* event_log) = 0; 652 virtual void LogConfig(RtcEventLog* event_log) = 0;
511 653
512 void DoTest() { 654 void DoTest() {
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 VideoSendConfigReadWriteTest test; 793 VideoSendConfigReadWriteTest test;
652 test.DoTest(); 794 test.DoTest();
653 } 795 }
654 796
655 TEST(RtcEventLogTest, LogAudioNetworkAdaptation) { 797 TEST(RtcEventLogTest, LogAudioNetworkAdaptation) {
656 AudioNetworkAdaptationReadWriteTest test; 798 AudioNetworkAdaptationReadWriteTest test;
657 test.DoTest(); 799 test.DoTest();
658 } 800 }
659 801
660 } // namespace webrtc 802 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698