| Index: media/cast/rtp_receiver/receiver_stats_unittest.cc
|
| diff --git a/media/cast/rtp_receiver/receiver_stats_unittest.cc b/media/cast/rtp_receiver/receiver_stats_unittest.cc
|
| deleted file mode 100644
|
| index 98059cdde71c8b0ba2924d6101db5f28303cef51..0000000000000000000000000000000000000000
|
| --- a/media/cast/rtp_receiver/receiver_stats_unittest.cc
|
| +++ /dev/null
|
| @@ -1,178 +0,0 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include <gtest/gtest.h>
|
| -
|
| -#include <stdint.h>
|
| -
|
| -#include "base/test/simple_test_tick_clock.h"
|
| -#include "base/time/time.h"
|
| -#include "media/cast/rtp_receiver/receiver_stats.h"
|
| -#include "media/cast/rtp_receiver/rtp_receiver_defines.h"
|
| -
|
| -namespace media {
|
| -namespace cast {
|
| -
|
| -static const int64 kStartMillisecond = INT64_C(12345678900000);
|
| -static const uint32 kStdTimeIncrementMs = 33;
|
| -
|
| -class ReceiverStatsTest : public ::testing::Test {
|
| - protected:
|
| - ReceiverStatsTest()
|
| - : stats_(&testing_clock_),
|
| - fraction_lost_(0),
|
| - cumulative_lost_(0),
|
| - extended_high_sequence_number_(0),
|
| - jitter_(0) {
|
| - testing_clock_.Advance(
|
| - base::TimeDelta::FromMilliseconds(kStartMillisecond));
|
| - start_time_ = testing_clock_.NowTicks();
|
| - delta_increments_ = base::TimeDelta::FromMilliseconds(kStdTimeIncrementMs);
|
| - }
|
| - virtual ~ReceiverStatsTest() {}
|
| -
|
| - uint32 ExpectedJitter(uint32 const_interval, int num_packets) {
|
| - float jitter = 0;
|
| - // Assume timestamps have a constant kStdTimeIncrementMs interval.
|
| - float float_interval =
|
| - static_cast<float>(const_interval - kStdTimeIncrementMs);
|
| - for (int i = 0; i < num_packets; ++i) {
|
| - jitter += (float_interval - jitter) / 16;
|
| - }
|
| - return static_cast<uint32>(jitter + 0.5f);
|
| - }
|
| -
|
| - ReceiverStats stats_;
|
| - RtpCastHeader rtp_header_;
|
| - uint8 fraction_lost_;
|
| - uint32 cumulative_lost_;
|
| - uint32 extended_high_sequence_number_;
|
| - uint32 jitter_;
|
| - base::SimpleTestTickClock testing_clock_;
|
| - base::TimeTicks start_time_;
|
| - base::TimeDelta delta_increments_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ReceiverStatsTest);
|
| -};
|
| -
|
| -TEST_F(ReceiverStatsTest, ResetState) {
|
| - stats_.GetStatistics(&fraction_lost_,
|
| - &cumulative_lost_,
|
| - &extended_high_sequence_number_,
|
| - &jitter_);
|
| - EXPECT_EQ(0u, fraction_lost_);
|
| - EXPECT_EQ(0u, cumulative_lost_);
|
| - EXPECT_EQ(0u, extended_high_sequence_number_);
|
| - EXPECT_EQ(0u, jitter_);
|
| -}
|
| -
|
| -TEST_F(ReceiverStatsTest, LossCount) {
|
| - for (int i = 0; i < 300; ++i) {
|
| - if (i % 4)
|
| - stats_.UpdateStatistics(rtp_header_);
|
| - if (i % 3) {
|
| - rtp_header_.rtp_timestamp += 33 * 90;
|
| - }
|
| - ++rtp_header_.sequence_number;
|
| - testing_clock_.Advance(delta_increments_);
|
| - }
|
| - stats_.GetStatistics(&fraction_lost_,
|
| - &cumulative_lost_,
|
| - &extended_high_sequence_number_,
|
| - &jitter_);
|
| - EXPECT_EQ(63u, fraction_lost_);
|
| - EXPECT_EQ(74u, cumulative_lost_);
|
| - // Build extended sequence number.
|
| - const uint32 extended_seq_num = rtp_header_.sequence_number - 1;
|
| - EXPECT_EQ(extended_seq_num, extended_high_sequence_number_);
|
| -}
|
| -
|
| -TEST_F(ReceiverStatsTest, NoLossWrap) {
|
| - rtp_header_.sequence_number = 65500;
|
| - for (int i = 0; i < 300; ++i) {
|
| - stats_.UpdateStatistics(rtp_header_);
|
| - if (i % 3) {
|
| - rtp_header_.rtp_timestamp += 33 * 90;
|
| - }
|
| - ++rtp_header_.sequence_number;
|
| - testing_clock_.Advance(delta_increments_);
|
| - }
|
| - stats_.GetStatistics(&fraction_lost_,
|
| - &cumulative_lost_,
|
| - &extended_high_sequence_number_,
|
| - &jitter_);
|
| - EXPECT_EQ(0u, fraction_lost_);
|
| - EXPECT_EQ(0u, cumulative_lost_);
|
| - // Build extended sequence number (one wrap cycle).
|
| - const uint32 extended_seq_num = (1 << 16) + rtp_header_.sequence_number - 1;
|
| - EXPECT_EQ(extended_seq_num, extended_high_sequence_number_);
|
| -}
|
| -
|
| -TEST_F(ReceiverStatsTest, LossCountWrap) {
|
| - const uint32 kStartSequenceNumber = 65500;
|
| - rtp_header_.sequence_number = kStartSequenceNumber;
|
| - for (int i = 0; i < 300; ++i) {
|
| - if (i % 4)
|
| - stats_.UpdateStatistics(rtp_header_);
|
| - if (i % 3)
|
| - // Update timestamp.
|
| - ++rtp_header_.rtp_timestamp;
|
| - ++rtp_header_.sequence_number;
|
| - testing_clock_.Advance(delta_increments_);
|
| - }
|
| - stats_.GetStatistics(&fraction_lost_,
|
| - &cumulative_lost_,
|
| - &extended_high_sequence_number_,
|
| - &jitter_);
|
| - EXPECT_EQ(63u, fraction_lost_);
|
| - EXPECT_EQ(74u, cumulative_lost_);
|
| - // Build extended sequence number (one wrap cycle).
|
| - const uint32 extended_seq_num = (1 << 16) + rtp_header_.sequence_number - 1;
|
| - EXPECT_EQ(extended_seq_num, extended_high_sequence_number_);
|
| -}
|
| -
|
| -TEST_F(ReceiverStatsTest, BasicJitter) {
|
| - for (int i = 0; i < 300; ++i) {
|
| - stats_.UpdateStatistics(rtp_header_);
|
| - ++rtp_header_.sequence_number;
|
| - rtp_header_.rtp_timestamp += 33 * 90;
|
| - testing_clock_.Advance(delta_increments_);
|
| - }
|
| - stats_.GetStatistics(&fraction_lost_,
|
| - &cumulative_lost_,
|
| - &extended_high_sequence_number_,
|
| - &jitter_);
|
| - EXPECT_FALSE(fraction_lost_);
|
| - EXPECT_FALSE(cumulative_lost_);
|
| - // Build extended sequence number (one wrap cycle).
|
| - const uint32 extended_seq_num = rtp_header_.sequence_number - 1;
|
| - EXPECT_EQ(extended_seq_num, extended_high_sequence_number_);
|
| - EXPECT_EQ(ExpectedJitter(kStdTimeIncrementMs, 300), jitter_);
|
| -}
|
| -
|
| -TEST_F(ReceiverStatsTest, NonTrivialJitter) {
|
| - const int kAdditionalIncrement = 5;
|
| - for (int i = 0; i < 300; ++i) {
|
| - stats_.UpdateStatistics(rtp_header_);
|
| - ++rtp_header_.sequence_number;
|
| - rtp_header_.rtp_timestamp += 33 * 90;
|
| - base::TimeDelta additional_delta =
|
| - base::TimeDelta::FromMilliseconds(kAdditionalIncrement);
|
| - testing_clock_.Advance(delta_increments_ + additional_delta);
|
| - }
|
| - stats_.GetStatistics(&fraction_lost_,
|
| - &cumulative_lost_,
|
| - &extended_high_sequence_number_,
|
| - &jitter_);
|
| - EXPECT_FALSE(fraction_lost_);
|
| - EXPECT_FALSE(cumulative_lost_);
|
| - // Build extended sequence number (one wrap cycle).
|
| - const uint32 extended_seq_num = rtp_header_.sequence_number - 1;
|
| - EXPECT_EQ(extended_seq_num, extended_high_sequence_number_);
|
| - EXPECT_EQ(ExpectedJitter(kStdTimeIncrementMs + kAdditionalIncrement, 300),
|
| - jitter_);
|
| -}
|
| -
|
| -} // namespace cast
|
| -} // namespace media
|
|
|