diff --git a/test/scenario/BUILD.gn b/test/scenario/BUILD.gn index af1059d875..1df39fa44d 100644 --- a/test/scenario/BUILD.gn +++ b/test/scenario/BUILD.gn @@ -162,6 +162,7 @@ if (rtc_include_tests) { rtc_source_set("scenario_unittests") { testonly = true sources = [ + "performance_stats_unittest.cc", "scenario_unittest.cc", "stats_collection_unittest.cc", "video_stream_unittest.cc", diff --git a/test/scenario/performance_stats.cc b/test/scenario/performance_stats.cc index 0bbf86dc61..5f5b506c1f 100644 --- a/test/scenario/performance_stats.cc +++ b/test/scenario/performance_stats.cc @@ -40,6 +40,13 @@ double EventRateCounter::Rate() const { return (event_count_ - 1) / (last_time_ - first_time_).seconds(); } +TimeDelta EventRateCounter::TotalDuration() const { + if (first_time_.IsInfinite()) { + return TimeDelta::Zero(); + } + return last_time_ - first_time_; +} + double SampleStats::Max() { if (IsEmpty()) return INFINITY; diff --git a/test/scenario/performance_stats.h b/test/scenario/performance_stats.h index b1ff39802f..310ee8d7f9 100644 --- a/test/scenario/performance_stats.h +++ b/test/scenario/performance_stats.h @@ -99,6 +99,7 @@ class EventRateCounter { bool IsEmpty() const; double Rate() const; SampleStats& interval() { return interval_; } + TimeDelta TotalDuration() const; int Count() const { return event_count_; } private: diff --git a/test/scenario/performance_stats_unittest.cc b/test/scenario/performance_stats_unittest.cc new file mode 100644 index 0000000000..93ab1a109a --- /dev/null +++ b/test/scenario/performance_stats_unittest.cc @@ -0,0 +1,27 @@ +/* + * Copyright 2019 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ +#include "test/scenario/performance_stats.h" + +#include "test/gtest.h" + +namespace webrtc { +namespace test { + +TEST(EventRateCounter, ReturnsCorrectTotalDuration) { + EventRateCounter event_rate_counter; + EXPECT_EQ(event_rate_counter.TotalDuration(), TimeDelta::Zero()); + event_rate_counter.AddEvent(Timestamp::seconds(1)); + EXPECT_EQ(event_rate_counter.TotalDuration(), TimeDelta::Zero()); + event_rate_counter.AddEvent(Timestamp::seconds(2)); + EXPECT_EQ(event_rate_counter.TotalDuration(), TimeDelta::seconds(1)); +} + +} // namespace test +} // namespace webrtc