diff options
author | jbates@chromium.org <jbates@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-01 00:39:23 +0000 |
---|---|---|
committer | jbates@chromium.org <jbates@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-01 00:39:23 +0000 |
commit | d482596c39895074f33e2154b60794e9dc8dd066 (patch) | |
tree | f239fbc2a7d710e7214a6805dcf3894f112c1663 /base/test/trace_event_analyzer_unittest.cc | |
parent | bd5d6cfd0e09e2123b948083bdaa39b2637b5143 (diff) | |
download | chromium_src-d482596c39895074f33e2154b60794e9dc8dd066.zip chromium_src-d482596c39895074f33e2154b60794e9dc8dd066.tar.gz chromium_src-d482596c39895074f33e2154b60794e9dc8dd066.tar.bz2 |
Add TraceAnalyzer support for calculating common event rate statistics
Review URL: http://codereview.chromium.org/8678035
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112354 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/test/trace_event_analyzer_unittest.cc')
-rw-r--r-- | base/test/trace_event_analyzer_unittest.cc | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/base/test/trace_event_analyzer_unittest.cc b/base/test/trace_event_analyzer_unittest.cc index a95413f..0ab8960 100644 --- a/base/test/trace_event_analyzer_unittest.cc +++ b/base/test/trace_event_analyzer_unittest.cc @@ -527,6 +527,49 @@ TEST_F(TraceEventAnalyzerTest, Literals) { EXPECT_TRUE((Query::Bool(false) == Query::Double(0.0f)).Evaluate(dummy)); } +// Test GetRateStats. +TEST_F(TraceEventAnalyzerTest, RateStats) { + using namespace trace_analyzer; + + std::vector<TraceEvent> events; + events.reserve(100); + TraceAnalyzer::TraceEventVector event_ptrs; + TraceEvent event; + event.timestamp = 0.0; + double little_delta = 1.0; + double big_delta = 10.0; + TraceAnalyzer::Stats stats; + + for (int i = 0; i < 10; ++i) { + event.timestamp += little_delta; + events.push_back(event); + event_ptrs.push_back(&events.back()); + } + + ASSERT_TRUE(TraceAnalyzer::GetRateStats(event_ptrs, &stats)); + EXPECT_EQ(little_delta, stats.mean_us); + EXPECT_EQ(little_delta, stats.min_us); + EXPECT_EQ(little_delta, stats.max_us); + EXPECT_EQ(0.0, stats.standard_deviation_us); + + event.timestamp += big_delta; + events.push_back(event); + event_ptrs.push_back(&events.back()); + + ASSERT_TRUE(TraceAnalyzer::GetRateStats(event_ptrs, &stats)); + EXPECT_LT(little_delta, stats.mean_us); + EXPECT_EQ(little_delta, stats.min_us); + EXPECT_EQ(big_delta, stats.max_us); + EXPECT_LT(0.0, stats.standard_deviation_us); + + TraceAnalyzer::TraceEventVector few_event_ptrs; + few_event_ptrs.push_back(&event); + few_event_ptrs.push_back(&event); + ASSERT_FALSE(TraceAnalyzer::GetRateStats(few_event_ptrs, &stats)); + few_event_ptrs.push_back(&event); + ASSERT_TRUE(TraceAnalyzer::GetRateStats(few_event_ptrs, &stats)); +} + } // namespace trace_analyzer |