Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1042)

Unified Diff: base/test/trace_event_analyzer_unittest.cc

Issue 1776673002: base: Add blame context (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Windows build fix. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/test/trace_event_analyzer.cc ('k') | base/trace_event/blame_context.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/test/trace_event_analyzer_unittest.cc
diff --git a/base/test/trace_event_analyzer_unittest.cc b/base/test/trace_event_analyzer_unittest.cc
index af1a3e0c3aa8fadfcb0c630b76f5c525822fccf8..b133caefd6a26255deb9542b10e1d221513a2571 100644
--- a/base/test/trace_event_analyzer_unittest.cc
+++ b/base/test/trace_event_analyzer_unittest.cc
@@ -11,6 +11,7 @@
#include "base/test/trace_event_analyzer.h"
#include "base/threading/platform_thread.h"
#include "base/trace_event/trace_buffer.h"
+#include "base/trace_event/trace_event_argument.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -98,6 +99,7 @@ TEST_F(TraceEventAnalyzerTest, TraceEvent) {
event.arg_numbers["int"] = static_cast<double>(int_num);
event.arg_numbers["double"] = double_num;
event.arg_strings["string"] = str;
+ event.arg_values["dict"] = make_scoped_ptr(new base::DictionaryValue());
ASSERT_TRUE(event.HasNumberArg("false"));
ASSERT_TRUE(event.HasNumberArg("true"));
@@ -106,12 +108,18 @@ TEST_F(TraceEventAnalyzerTest, TraceEvent) {
ASSERT_TRUE(event.HasStringArg("string"));
ASSERT_FALSE(event.HasNumberArg("notfound"));
ASSERT_FALSE(event.HasStringArg("notfound"));
+ ASSERT_TRUE(event.HasArg("dict"));
+ ASSERT_FALSE(event.HasArg("notfound"));
EXPECT_FALSE(event.GetKnownArgAsBool("false"));
EXPECT_TRUE(event.GetKnownArgAsBool("true"));
EXPECT_EQ(int_num, event.GetKnownArgAsInt("int"));
EXPECT_EQ(double_num, event.GetKnownArgAsDouble("double"));
EXPECT_STREQ(str, event.GetKnownArgAsString("string").c_str());
+
+ scoped_ptr<base::Value> arg;
+ EXPECT_TRUE(event.GetArgAsValue("dict", &arg));
+ EXPECT_EQ(base::Value::TYPE_DICTIONARY, arg->GetType());
}
TEST_F(TraceEventAnalyzerTest, QueryEventMember) {
@@ -712,8 +720,7 @@ TEST_F(TraceEventAnalyzerTest, RateStats) {
std::vector<TraceEvent> events;
events.reserve(100);
TraceEventVector event_ptrs;
- TraceEvent event;
- event.timestamp = 0.0;
+ double timestamp = 0.0;
double little_delta = 1.0;
double big_delta = 10.0;
double tiny_delta = 0.1;
@@ -722,8 +729,10 @@ TEST_F(TraceEventAnalyzerTest, RateStats) {
// Insert 10 events, each apart by little_delta.
for (int i = 0; i < 10; ++i) {
- event.timestamp += little_delta;
- events.push_back(event);
+ timestamp += little_delta;
+ TraceEvent event;
+ event.timestamp = timestamp;
+ events.push_back(std::move(event));
event_ptrs.push_back(&events.back());
}
@@ -734,9 +743,13 @@ TEST_F(TraceEventAnalyzerTest, RateStats) {
EXPECT_EQ(0.0, stats.standard_deviation_us);
// Add an event apart by big_delta.
- event.timestamp += big_delta;
- events.push_back(event);
- event_ptrs.push_back(&events.back());
+ {
+ timestamp += big_delta;
+ TraceEvent event;
+ event.timestamp = timestamp;
+ events.push_back(std::move(event));
+ event_ptrs.push_back(&events.back());
+ }
ASSERT_TRUE(GetRateStats(event_ptrs, &stats, NULL));
EXPECT_LT(little_delta, stats.mean_us);
@@ -754,9 +767,13 @@ TEST_F(TraceEventAnalyzerTest, RateStats) {
EXPECT_EQ(0.0, stats.standard_deviation_us);
// Add an event apart by tiny_delta.
- event.timestamp += tiny_delta;
- events.push_back(event);
- event_ptrs.push_back(&events.back());
+ {
+ timestamp += tiny_delta;
+ TraceEvent event;
+ event.timestamp = timestamp;
+ events.push_back(std::move(event));
+ event_ptrs.push_back(&events.back());
+ }
// Trim off both the biggest and tiniest delta and verify stats.
options.trim_min = 1;
@@ -768,17 +785,20 @@ TEST_F(TraceEventAnalyzerTest, RateStats) {
EXPECT_EQ(0.0, stats.standard_deviation_us);
// Verify smallest allowed number of events.
- TraceEventVector few_event_ptrs;
- few_event_ptrs.push_back(&event);
- few_event_ptrs.push_back(&event);
- ASSERT_FALSE(GetRateStats(few_event_ptrs, &stats, NULL));
- few_event_ptrs.push_back(&event);
- ASSERT_TRUE(GetRateStats(few_event_ptrs, &stats, NULL));
-
- // Trim off more than allowed and verify failure.
- options.trim_min = 0;
- options.trim_max = 1;
- ASSERT_FALSE(GetRateStats(few_event_ptrs, &stats, &options));
+ {
+ TraceEvent event;
+ TraceEventVector few_event_ptrs;
+ few_event_ptrs.push_back(&event);
+ few_event_ptrs.push_back(&event);
+ ASSERT_FALSE(GetRateStats(few_event_ptrs, &stats, NULL));
+ few_event_ptrs.push_back(&event);
+ ASSERT_TRUE(GetRateStats(few_event_ptrs, &stats, NULL));
+
+ // Trim off more than allowed and verify failure.
+ options.trim_min = 0;
+ options.trim_max = 1;
+ ASSERT_FALSE(GetRateStats(few_event_ptrs, &stats, &options));
+ }
}
// Test FindFirstOf and FindLastOf.
@@ -895,5 +915,37 @@ TEST_F(TraceEventAnalyzerTest, CountMatches) {
EXPECT_EQ(num_named, CountMatches(event_ptrs, query_named));
}
+TEST_F(TraceEventAnalyzerTest, ComplexArgument) {
+ ManualSetUp();
+
+ BeginTracing();
+ {
+ scoped_ptr<base::trace_event::TracedValue> value(
+ new base::trace_event::TracedValue);
+ value->SetString("property", "value");
+ TRACE_EVENT1("cat", "name", "arg", std::move(value));
+ }
+ EndTracing();
+
+ scoped_ptr<TraceAnalyzer> analyzer(
+ TraceAnalyzer::Create(output_.json_output));
+ ASSERT_TRUE(analyzer.get());
+
+ TraceEventVector events;
+ analyzer->FindEvents(Query::EventName() == Query::String("name"), &events);
+
+ EXPECT_EQ(1u, events.size());
+ EXPECT_EQ("cat", events[0]->category);
+ EXPECT_EQ("name", events[0]->name);
+ EXPECT_TRUE(events[0]->HasArg("arg"));
+
+ scoped_ptr<base::Value> arg;
+ events[0]->GetArgAsValue("arg", &arg);
+ base::DictionaryValue* arg_dict;
+ EXPECT_TRUE(arg->GetAsDictionary(&arg_dict));
+ std::string property;
+ EXPECT_TRUE(arg_dict->GetString("property", &property));
+ EXPECT_EQ("value", property);
+}
} // namespace trace_analyzer
« no previous file with comments | « base/test/trace_event_analyzer.cc ('k') | base/trace_event/blame_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698