| Index: webrtc/video/receive_statistics_proxy_unittest.cc
|
| diff --git a/webrtc/video/receive_statistics_proxy_unittest.cc b/webrtc/video/receive_statistics_proxy_unittest.cc
|
| index 894ee8fe732ec837fdd31b2e57501fa11c4fe23f..b8c4b20f99a304f0a42d612c3288d85ecea76c5a 100644
|
| --- a/webrtc/video/receive_statistics_proxy_unittest.cc
|
| +++ b/webrtc/video/receive_statistics_proxy_unittest.cc
|
| @@ -12,9 +12,13 @@
|
|
|
| #include <memory>
|
|
|
| +#include "webrtc/system_wrappers/include/metrics_default.h"
|
| #include "webrtc/test/gtest.h"
|
|
|
| namespace webrtc {
|
| +namespace {
|
| +const int64_t kFreqOffsetProcessIntervalInMs = 40000;
|
| +} // namespace
|
|
|
| // TODO(sakal): ReceiveStatisticsProxy is lacking unittesting.
|
| class ReceiveStatisticsProxyTest : public ::testing::Test {
|
| @@ -24,6 +28,7 @@ class ReceiveStatisticsProxyTest : public ::testing::Test {
|
|
|
| protected:
|
| virtual void SetUp() {
|
| + metrics::Reset();
|
| statistics_proxy_.reset(new ReceiveStatisticsProxy(&config_, &fake_clock_));
|
| }
|
|
|
| @@ -33,8 +38,8 @@ class ReceiveStatisticsProxyTest : public ::testing::Test {
|
| }
|
|
|
| SimulatedClock fake_clock_;
|
| + const VideoReceiveStream::Config config_;
|
| std::unique_ptr<ReceiveStatisticsProxy> statistics_proxy_;
|
| - VideoReceiveStream::Config config_;
|
| };
|
|
|
| TEST_F(ReceiveStatisticsProxyTest, OnDecodedFrameIncreasesFramesDecoded) {
|
| @@ -45,4 +50,23 @@ TEST_F(ReceiveStatisticsProxyTest, OnDecodedFrameIncreasesFramesDecoded) {
|
| }
|
| }
|
|
|
| +TEST_F(ReceiveStatisticsProxyTest, RtpToNtpFrequencyOffsetHistogramIsUpdated) {
|
| + const int64_t kSyncOffsetMs = 22;
|
| + const double kFreqKhz = 90.0;
|
| + statistics_proxy_->OnSyncOffsetUpdated(kSyncOffsetMs, kFreqKhz);
|
| + statistics_proxy_->OnSyncOffsetUpdated(kSyncOffsetMs, kFreqKhz + 2.2);
|
| + fake_clock_.AdvanceTimeMilliseconds(kFreqOffsetProcessIntervalInMs);
|
| + // Process interval passed, max diff: 2.
|
| + statistics_proxy_->OnSyncOffsetUpdated(kSyncOffsetMs, kFreqKhz + 1.1);
|
| + statistics_proxy_->OnSyncOffsetUpdated(kSyncOffsetMs, kFreqKhz - 4.2);
|
| + statistics_proxy_->OnSyncOffsetUpdated(kSyncOffsetMs, kFreqKhz - 0.9);
|
| + fake_clock_.AdvanceTimeMilliseconds(kFreqOffsetProcessIntervalInMs);
|
| + // Process interval passed, max diff: 4.
|
| + statistics_proxy_->OnSyncOffsetUpdated(kSyncOffsetMs, kFreqKhz);
|
| + statistics_proxy_.reset();
|
| + // Average reported: (2 + 4) / 2 = 3.
|
| + EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.RtpToNtpFreqOffsetInKhz"));
|
| + EXPECT_EQ(1, metrics::NumEvents("WebRTC.Video.RtpToNtpFreqOffsetInKhz", 3));
|
| +}
|
| +
|
| } // namespace webrtc
|
|
|