1 /* 2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3 * 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 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #include "webrtc/modules/video_coding/codecs/test/stats.h" 12 13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "webrtc/typedefs.h" 15 16 namespace webrtc { 17 namespace test { 18 19 class StatsTest : public testing::Test { 20 protected: 21 StatsTest() {} 22 23 virtual ~StatsTest() {} 24 25 void SetUp() { stats_ = new Stats(); } 26 27 void TearDown() { delete stats_; } 28 29 Stats* stats_; 30 }; 31 32 // Test empty object 33 TEST_F(StatsTest, Uninitialized) { 34 EXPECT_EQ(0u, stats_->stats_.size()); 35 stats_->PrintSummary(); // should not crash 36 } 37 38 // Add single frame stats and verify 39 TEST_F(StatsTest, AddOne) { 40 stats_->NewFrame(0u); 41 FrameStatistic* frameStat = &stats_->stats_[0]; 42 EXPECT_EQ(0, frameStat->frame_number); 43 } 44 45 // Add multiple frame stats and verify 46 TEST_F(StatsTest, AddMany) { 47 int nbr_of_frames = 1000; 48 for (int i = 0; i < nbr_of_frames; ++i) { 49 FrameStatistic& frameStat = stats_->NewFrame(i); 50 EXPECT_EQ(i, frameStat.frame_number); 51 } 52 EXPECT_EQ(nbr_of_frames, static_cast<int>(stats_->stats_.size())); 53 54 stats_->PrintSummary(); // should not crash 55 } 56 57 } // namespace test 58 } // namespace webrtc 59