summaryrefslogtreecommitdiffstats
path: root/base/test/trace_event_analyzer_unittest.cc
diff options
context:
space:
mode:
authorjbates@chromium.org <jbates@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-01 00:39:23 +0000
committerjbates@chromium.org <jbates@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-01 00:39:23 +0000
commitd482596c39895074f33e2154b60794e9dc8dd066 (patch)
treef239fbc2a7d710e7214a6805dcf3894f112c1663 /base/test/trace_event_analyzer_unittest.cc
parentbd5d6cfd0e09e2123b948083bdaa39b2637b5143 (diff)
downloadchromium_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.cc43
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