Index: base/trace_event/trace_event_unittest.cc |
diff --git a/base/trace_event/trace_event_unittest.cc b/base/trace_event/trace_event_unittest.cc |
index d03224301cdffd3367bf85165832ff2e901f7152..2449d54cf63b1f2cc5cba2d732c3afd242bc7b4b 100644 |
--- a/base/trace_event/trace_event_unittest.cc |
+++ b/base/trace_event/trace_event_unittest.cc |
@@ -48,6 +48,8 @@ const char kAsyncIdStr[] = "0x5"; |
const int kAsyncId2 = 6; |
const char kAsyncId2Str[] = "0x6"; |
+const char kRecordAllCategoryFilter[] = "*"; |
+ |
class TraceEventTestFixture : public testing::Test { |
public: |
void OnTraceDataCollected( |
@@ -79,10 +81,8 @@ class TraceEventTestFixture : public testing::Test { |
void BeginSpecificTrace(const std::string& filter) { |
event_watch_notification_ = 0; |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter(filter), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig(filter, ""), |
+ TraceLog::RECORDING_MODE); |
} |
void EndTraceAndFlush() { |
@@ -168,8 +168,8 @@ void TraceEventTestFixture::OnTraceDataCollected( |
trace_buffer_.Finish(); |
scoped_ptr<Value> root; |
- root.reset(base::JSONReader::Read(json_output_.json_output, |
- JSON_PARSE_RFC | JSON_DETACHABLE_CHILDREN)); |
+ root.reset(base::JSONReader::DeprecatedRead( |
+ json_output_.json_output, JSON_PARSE_RFC | JSON_DETACHABLE_CHILDREN)); |
if (!root.get()) { |
LOG(ERROR) << json_output_.json_output; |
@@ -872,10 +872,8 @@ void ValidateInstantEventPresentOnEveryThread(const ListValue& trace_parsed, |
// Simple Test for emitting data and validating it was received. |
TEST_F(TraceEventTestFixture, DataCaptured) { |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig(kRecordAllCategoryFilter, ""), |
+ TraceLog::RECORDING_MODE); |
TraceWithAllMacroVariants(NULL); |
@@ -897,10 +895,8 @@ TEST_F(TraceEventTestFixture, EnabledObserverFiresOnEnable) { |
EXPECT_CALL(observer, OnTraceLogEnabled()) |
.Times(1); |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig(kRecordAllCategoryFilter, ""), |
+ TraceLog::RECORDING_MODE); |
testing::Mock::VerifyAndClear(&observer); |
EXPECT_TRUE(TraceLog::GetInstance()->IsEnabled()); |
@@ -910,10 +906,8 @@ TEST_F(TraceEventTestFixture, EnabledObserverFiresOnEnable) { |
} |
TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnSecondEnable) { |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig(kRecordAllCategoryFilter, ""), |
+ TraceLog::RECORDING_MODE); |
testing::StrictMock<MockEnabledStateChangedObserver> observer; |
TraceLog::GetInstance()->AddEnabledStateObserver(&observer); |
@@ -922,10 +916,8 @@ TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnSecondEnable) { |
.Times(0); |
EXPECT_CALL(observer, OnTraceLogDisabled()) |
.Times(0); |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig(kRecordAllCategoryFilter, ""), |
+ TraceLog::RECORDING_MODE); |
testing::Mock::VerifyAndClear(&observer); |
EXPECT_TRUE(TraceLog::GetInstance()->IsEnabled()); |
@@ -936,15 +928,9 @@ TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnSecondEnable) { |
} |
TEST_F(TraceEventTestFixture, EnabledObserverFiresOnFirstDisable) { |
- CategoryFilter cf_inc_all("*"); |
- TraceLog::GetInstance()->SetEnabled( |
- cf_inc_all, |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
- TraceLog::GetInstance()->SetEnabled( |
- cf_inc_all, |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceConfig tc_inc_all("*", ""); |
+ TraceLog::GetInstance()->SetEnabled(tc_inc_all, TraceLog::RECORDING_MODE); |
+ TraceLog::GetInstance()->SetEnabled(tc_inc_all, TraceLog::RECORDING_MODE); |
testing::StrictMock<MockEnabledStateChangedObserver> observer; |
TraceLog::GetInstance()->AddEnabledStateObserver(&observer); |
@@ -962,10 +948,8 @@ TEST_F(TraceEventTestFixture, EnabledObserverFiresOnFirstDisable) { |
} |
TEST_F(TraceEventTestFixture, EnabledObserverFiresOnDisable) { |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig(kRecordAllCategoryFilter, ""), |
+ TraceLog::RECORDING_MODE); |
MockEnabledStateChangedObserver observer; |
TraceLog::GetInstance()->AddEnabledStateObserver(&observer); |
@@ -1000,10 +984,8 @@ TEST_F(TraceEventTestFixture, ObserversFireAfterStateChange) { |
AfterStateChangeEnabledStateObserver observer; |
TraceLog::GetInstance()->AddEnabledStateObserver(&observer); |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig(kRecordAllCategoryFilter, ""), |
+ TraceLog::RECORDING_MODE); |
EXPECT_TRUE(TraceLog::GetInstance()->IsEnabled()); |
TraceLog::GetInstance()->SetDisabled(); |
@@ -1034,10 +1016,8 @@ TEST_F(TraceEventTestFixture, SelfRemovingObserver) { |
TraceLog::GetInstance()->AddEnabledStateObserver(&observer); |
EXPECT_EQ(1u, TraceLog::GetInstance()->GetObserverCountForTest()); |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig(kRecordAllCategoryFilter, ""), |
+ TraceLog::RECORDING_MODE); |
TraceLog::GetInstance()->SetDisabled(); |
// The observer removed itself on disable. |
EXPECT_EQ(0u, TraceLog::GetInstance()->GetObserverCountForTest()); |
@@ -1051,10 +1031,8 @@ bool IsNewTrace() { |
TEST_F(TraceEventTestFixture, NewTraceRecording) { |
ASSERT_FALSE(IsNewTrace()); |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig(kRecordAllCategoryFilter, ""), |
+ TraceLog::RECORDING_MODE); |
// First call to IsNewTrace() should succeed. But, the second shouldn't. |
ASSERT_TRUE(IsNewTrace()); |
ASSERT_FALSE(IsNewTrace()); |
@@ -1065,10 +1043,8 @@ TEST_F(TraceEventTestFixture, NewTraceRecording) { |
// Start another trace. IsNewTrace() should become true again, briefly, as |
// before. |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig(kRecordAllCategoryFilter, ""), |
+ TraceLog::RECORDING_MODE); |
ASSERT_TRUE(IsNewTrace()); |
ASSERT_FALSE(IsNewTrace()); |
@@ -1123,10 +1099,8 @@ TEST_F(TraceEventTestFixture, Categories) { |
// Include nonexistent category -> no events |
Clear(); |
included_categories.clear(); |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("not_found823564786"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig("not_found823564786", ""), |
+ TraceLog::RECORDING_MODE); |
TRACE_EVENT_INSTANT0("cat1", "name", TRACE_EVENT_SCOPE_THREAD); |
TRACE_EVENT_INSTANT0("cat2", "name", TRACE_EVENT_SCOPE_THREAD); |
EndTraceAndFlush(); |
@@ -1136,10 +1110,8 @@ TEST_F(TraceEventTestFixture, Categories) { |
// Include existent category -> only events of that category |
Clear(); |
included_categories.clear(); |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("inc"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig("inc", ""), |
+ TraceLog::RECORDING_MODE); |
TRACE_EVENT_INSTANT0("inc", "name", TRACE_EVENT_SCOPE_THREAD); |
TRACE_EVENT_INSTANT0("inc2", "name", TRACE_EVENT_SCOPE_THREAD); |
EndTraceAndFlush(); |
@@ -1151,9 +1123,8 @@ TEST_F(TraceEventTestFixture, Categories) { |
Clear(); |
included_categories.clear(); |
TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("inc_wildcard_*,inc_wildchar_?_end"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceConfig("inc_wildcard_*,inc_wildchar_?_end", ""), |
+ TraceLog::RECORDING_MODE); |
TRACE_EVENT_INSTANT0("inc_wildcard_abc", "included", |
TRACE_EVENT_SCOPE_THREAD); |
TRACE_EVENT_INSTANT0("inc_wildcard_", "included", TRACE_EVENT_SCOPE_THREAD); |
@@ -1181,10 +1152,8 @@ TEST_F(TraceEventTestFixture, Categories) { |
// Exclude nonexistent category -> all events |
Clear(); |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("-not_found823564786"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig("-not_found823564786", ""), |
+ TraceLog::RECORDING_MODE); |
TRACE_EVENT_INSTANT0("cat1", "name", TRACE_EVENT_SCOPE_THREAD); |
TRACE_EVENT_INSTANT0("cat2", "name", TRACE_EVENT_SCOPE_THREAD); |
TRACE_EVENT_INSTANT0("category1,category2", "name", TRACE_EVENT_SCOPE_THREAD); |
@@ -1195,10 +1164,8 @@ TEST_F(TraceEventTestFixture, Categories) { |
// Exclude existent category -> only events of other categories |
Clear(); |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("-inc"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig("-inc", ""), |
+ TraceLog::RECORDING_MODE); |
TRACE_EVENT_INSTANT0("inc", "name", TRACE_EVENT_SCOPE_THREAD); |
TRACE_EVENT_INSTANT0("inc2", "name", TRACE_EVENT_SCOPE_THREAD); |
TRACE_EVENT_INSTANT0("inc2,inc", "name", TRACE_EVENT_SCOPE_THREAD); |
@@ -1212,9 +1179,8 @@ TEST_F(TraceEventTestFixture, Categories) { |
// Exclude existent wildcard -> all categories not matching wildcard |
Clear(); |
TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("-inc_wildcard_*,-inc_wildchar_?_end"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceConfig("-inc_wildcard_*,-inc_wildchar_?_end", ""), |
+ TraceLog::RECORDING_MODE); |
TRACE_EVENT_INSTANT0("inc_wildcard_abc", "not_inc", |
TRACE_EVENT_SCOPE_THREAD); |
TRACE_EVENT_INSTANT0("inc_wildcard_", "not_inc", |
@@ -1733,22 +1699,16 @@ TEST_F(TraceEventTestFixture, TracingIsLazy) { |
TEST_F(TraceEventTestFixture, TraceEnableDisable) { |
TraceLog* trace_log = TraceLog::GetInstance(); |
- CategoryFilter cf_inc_all("*"); |
- trace_log->SetEnabled(cf_inc_all, |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceConfig tc_inc_all("*", ""); |
+ trace_log->SetEnabled(tc_inc_all, TraceLog::RECORDING_MODE); |
EXPECT_TRUE(trace_log->IsEnabled()); |
trace_log->SetDisabled(); |
EXPECT_FALSE(trace_log->IsEnabled()); |
- trace_log->SetEnabled(cf_inc_all, |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ trace_log->SetEnabled(tc_inc_all, TraceLog::RECORDING_MODE); |
EXPECT_TRUE(trace_log->IsEnabled()); |
const std::vector<std::string> empty; |
- trace_log->SetEnabled(CategoryFilter(), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ trace_log->SetEnabled(TraceConfig(), TraceLog::RECORDING_MODE); |
EXPECT_TRUE(trace_log->IsEnabled()); |
trace_log->SetDisabled(); |
EXPECT_FALSE(trace_log->IsEnabled()); |
@@ -1758,70 +1718,59 @@ TEST_F(TraceEventTestFixture, TraceEnableDisable) { |
TEST_F(TraceEventTestFixture, TraceCategoriesAfterNestedEnable) { |
TraceLog* trace_log = TraceLog::GetInstance(); |
- trace_log->SetEnabled(CategoryFilter("foo,bar"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ trace_log->SetEnabled(TraceConfig("foo,bar", ""), TraceLog::RECORDING_MODE); |
EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo")); |
EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("bar")); |
EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("baz")); |
- trace_log->SetEnabled(CategoryFilter("foo2"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ trace_log->SetEnabled(TraceConfig("foo2", ""), TraceLog::RECORDING_MODE); |
EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo2")); |
EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("baz")); |
// The "" becomes the default catergory set when applied. |
- trace_log->SetEnabled(CategoryFilter(), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ trace_log->SetEnabled(TraceConfig(), TraceLog::RECORDING_MODE); |
EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo")); |
EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("baz")); |
- EXPECT_STREQ("-*Debug,-*Test", |
- trace_log->GetCurrentCategoryFilter().ToString().c_str()); |
+ EXPECT_STREQ( |
+ "-*Debug,-*Test", |
+ trace_log->GetCurrentTraceConfig().ToCategoryFilterString().c_str()); |
trace_log->SetDisabled(); |
trace_log->SetDisabled(); |
trace_log->SetDisabled(); |
EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("foo")); |
EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("baz")); |
- trace_log->SetEnabled(CategoryFilter("-foo,-bar"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ trace_log->SetEnabled(TraceConfig("-foo,-bar", ""), TraceLog::RECORDING_MODE); |
EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("foo")); |
EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("baz")); |
- trace_log->SetEnabled(CategoryFilter("moo"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ trace_log->SetEnabled(TraceConfig("moo", ""), TraceLog::RECORDING_MODE); |
EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("baz")); |
EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("moo")); |
EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("foo")); |
- EXPECT_STREQ("-foo,-bar", |
- trace_log->GetCurrentCategoryFilter().ToString().c_str()); |
+ EXPECT_STREQ( |
+ "-foo,-bar", |
+ trace_log->GetCurrentTraceConfig().ToCategoryFilterString().c_str()); |
trace_log->SetDisabled(); |
trace_log->SetDisabled(); |
// Make sure disabled categories aren't cleared if we set in the second. |
- trace_log->SetEnabled(CategoryFilter("disabled-by-default-cc,foo"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ trace_log->SetEnabled(TraceConfig("disabled-by-default-cc,foo", ""), |
+ TraceLog::RECORDING_MODE); |
EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("bar")); |
- trace_log->SetEnabled(CategoryFilter("disabled-by-default-gpu"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ trace_log->SetEnabled(TraceConfig("disabled-by-default-gpu", ""), |
+ TraceLog::RECORDING_MODE); |
EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("disabled-by-default-cc")); |
EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("disabled-by-default-gpu")); |
EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("bar")); |
- EXPECT_STREQ("disabled-by-default-cc,disabled-by-default-gpu", |
- trace_log->GetCurrentCategoryFilter().ToString().c_str()); |
+ EXPECT_STREQ( |
+ "disabled-by-default-cc,disabled-by-default-gpu", |
+ trace_log->GetCurrentTraceConfig().ToCategoryFilterString().c_str()); |
trace_log->SetDisabled(); |
trace_log->SetDisabled(); |
} |
TEST_F(TraceEventTestFixture, TraceSampling) { |
- TraceOptions trace_options(RECORD_UNTIL_FULL); |
- trace_options.enable_sampling = true; |
- TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- trace_options); |
+ TraceLog::GetInstance()->SetEnabled( |
+ TraceConfig(kRecordAllCategoryFilter, "record-until-full,enable-sampling"), |
+ TraceLog::RECORDING_MODE); |
TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Stuff"); |
TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
@@ -1836,11 +1785,9 @@ TEST_F(TraceEventTestFixture, TraceSampling) { |
} |
TEST_F(TraceEventTestFixture, TraceSamplingScope) { |
- TraceOptions trace_options(RECORD_UNTIL_FULL); |
- trace_options.enable_sampling = true; |
- TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- trace_options); |
+ TraceLog::GetInstance()->SetEnabled( |
+ TraceConfig(kRecordAllCategoryFilter, "record-until-full,enable-sampling"), |
+ TraceLog::RECORDING_MODE); |
TRACE_EVENT_SCOPED_SAMPLING_STATE("AAA", "name"); |
TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
@@ -1871,12 +1818,9 @@ TEST_F(TraceEventTestFixture, TraceSamplingScope) { |
} |
TEST_F(TraceEventTestFixture, TraceContinuousSampling) { |
- TraceOptions trace_options(RECORD_UNTIL_FULL); |
- trace_options.enable_sampling = true; |
- |
- TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
- TraceLog::MONITORING_MODE, |
- trace_options); |
+ TraceLog::GetInstance()->SetEnabled( |
+ TraceConfig(kRecordAllCategoryFilter, "record-until-full,enable-sampling"), |
+ TraceLog::MONITORING_MODE); |
TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "category", "AAA"); |
TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
@@ -1933,10 +1877,8 @@ class MyData : public ConvertableToTraceFormat { |
}; |
TEST_F(TraceEventTestFixture, ConvertableTypes) { |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig(kRecordAllCategoryFilter, ""), |
+ TraceLog::RECORDING_MODE); |
scoped_refptr<ConvertableToTraceFormat> data(new MyData()); |
scoped_refptr<ConvertableToTraceFormat> data1(new MyData()); |
@@ -2040,10 +1982,8 @@ TEST_F(TraceEventTestFixture, ConvertableTypes) { |
} |
TEST_F(TraceEventTestFixture, PrimitiveArgs) { |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig(kRecordAllCategoryFilter, ""), |
+ TraceLog::RECORDING_MODE); |
TRACE_EVENT1("foo", "event1", "int_one", 1); |
TRACE_EVENT1("foo", "event2", "int_neg_ten", -10); |
@@ -2205,6 +2145,51 @@ TEST_F(TraceEventTestFixture, PrimitiveArgs) { |
EXPECT_EQ(1, int_value); |
} |
+namespace { |
+ |
+bool IsTraceEventArgsWhitelisted(const char* category_group_name, |
+ const char* event_name) { |
+ if (MatchPattern(category_group_name, "toplevel") && |
+ MatchPattern(event_name, "*")) { |
+ return true; |
+ } |
+ |
+ return false; |
+} |
+ |
+} // namespace |
+ |
+TEST_F(TraceEventTestFixture, ArgsWhitelisting) { |
+ TraceLog::GetInstance()->SetArgumentFilterPredicate( |
+ base::Bind(&IsTraceEventArgsWhitelisted)); |
+ |
+ TraceLog::GetInstance()->SetEnabled( |
+ TraceConfig(kRecordAllCategoryFilter, "enable-argument-filter"), |
+ TraceLog::RECORDING_MODE); |
+ |
+ TRACE_EVENT1("toplevel", "event1", "int_one", 1); |
+ TRACE_EVENT1("whitewashed", "event2", "int_two", 1); |
+ EndTraceAndFlush(); |
+ |
+ const DictionaryValue* args_dict = NULL; |
+ DictionaryValue* dict = NULL; |
+ int int_value; |
+ |
+ dict = FindNamePhase("event1", "X"); |
+ ASSERT_TRUE(dict); |
+ dict->GetDictionary("args", &args_dict); |
+ ASSERT_TRUE(args_dict); |
+ EXPECT_TRUE(args_dict->GetInteger("int_one", &int_value)); |
+ EXPECT_EQ(1, int_value); |
+ |
+ dict = FindNamePhase("event2", "X"); |
+ ASSERT_TRUE(dict); |
+ dict->GetDictionary("args", &args_dict); |
+ ASSERT_TRUE(args_dict); |
+ EXPECT_FALSE(args_dict->GetInteger("int_two", &int_value)); |
+ EXPECT_TRUE(args_dict->GetInteger("stripped", &int_value)); |
+} |
+ |
class TraceEventCallbackTest : public TraceEventTestFixture { |
public: |
void SetUp() override { |
@@ -2250,10 +2235,10 @@ class TraceEventCallbackTest : public TraceEventTestFixture { |
std::vector<std::string> collected_events_categories_; |
std::vector<std::string> collected_events_names_; |
std::vector<unsigned char> collected_events_phases_; |
- std::vector<TimeTicks> collected_events_timestamps_; |
+ std::vector<TraceTicks> collected_events_timestamps_; |
static TraceEventCallbackTest* s_instance; |
- static void Callback(TimeTicks timestamp, |
+ static void Callback(TraceTicks timestamp, |
char phase, |
const unsigned char* category_group_enabled, |
const char* name, |
@@ -2276,7 +2261,7 @@ TraceEventCallbackTest* TraceEventCallbackTest::s_instance; |
TEST_F(TraceEventCallbackTest, TraceEventCallback) { |
TRACE_EVENT_INSTANT0("all", "before enable", TRACE_EVENT_SCOPE_THREAD); |
TraceLog::GetInstance()->SetEventCallbackEnabled( |
- CategoryFilter("*"), Callback); |
+ TraceConfig(kRecordAllCategoryFilter, ""), Callback); |
TRACE_EVENT_INSTANT0("all", "event1", TRACE_EVENT_SCOPE_GLOBAL); |
TRACE_EVENT_INSTANT0("all", "event2", TRACE_EVENT_SCOPE_GLOBAL); |
{ |
@@ -2304,15 +2289,13 @@ TEST_F(TraceEventCallbackTest, TraceEventCallback) { |
} |
TEST_F(TraceEventCallbackTest, TraceEventCallbackWhileFull) { |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig(kRecordAllCategoryFilter, ""), |
+ TraceLog::RECORDING_MODE); |
do { |
TRACE_EVENT_INSTANT0("all", "badger badger", TRACE_EVENT_SCOPE_GLOBAL); |
} while (!TraceLog::GetInstance()->BufferIsFull()); |
- TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("*"), |
- Callback); |
+ TraceLog::GetInstance()->SetEventCallbackEnabled( |
+ TraceConfig(kRecordAllCategoryFilter, ""), Callback); |
TRACE_EVENT_INSTANT0("all", "a snake", TRACE_EVENT_SCOPE_GLOBAL); |
TraceLog::GetInstance()->SetEventCallbackDisabled(); |
ASSERT_EQ(1u, collected_events_names_.size()); |
@@ -2323,14 +2306,12 @@ TEST_F(TraceEventCallbackTest, TraceEventCallbackWhileFull) { |
TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording1) { |
TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
- TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), |
+ TraceLog::GetInstance()->SetEventCallbackEnabled(TraceConfig("callback", ""), |
Callback); |
TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("recording"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig("recording", ""), |
+ TraceLog::RECORDING_MODE); |
TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
TraceLog::GetInstance()->SetEventCallbackDisabled(); |
@@ -2348,14 +2329,12 @@ TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording1) { |
TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording2) { |
TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
- TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), |
+ TraceLog::GetInstance()->SetEventCallbackEnabled(TraceConfig("callback", ""), |
Callback); |
TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("recording"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig("recording", ""), |
+ TraceLog::RECORDING_MODE); |
TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
EndTraceAndFlush(); |
@@ -2373,13 +2352,11 @@ TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording2) { |
TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording3) { |
TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("recording"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig("recording", ""), |
+ TraceLog::RECORDING_MODE); |
TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
- TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), |
+ TraceLog::GetInstance()->SetEventCallbackEnabled(TraceConfig("callback", ""), |
Callback); |
TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
@@ -2398,13 +2375,11 @@ TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording3) { |
TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording4) { |
TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
- TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("recording"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceLog::GetInstance()->SetEnabled(TraceConfig("recording", ""), |
+ TraceLog::RECORDING_MODE); |
TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
- TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), |
+ TraceLog::GetInstance()->SetEventCallbackEnabled(TraceConfig("callback", ""), |
Callback); |
TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
@@ -2420,14 +2395,12 @@ TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording4) { |
} |
TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecordingDuration) { |
- TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("*"), |
- Callback); |
+ TraceLog::GetInstance()->SetEventCallbackEnabled( |
+ TraceConfig(kRecordAllCategoryFilter, ""), Callback); |
{ |
TRACE_EVENT0("callback", "duration1"); |
TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ TraceConfig(kRecordAllCategoryFilter, ""), TraceLog::RECORDING_MODE); |
TRACE_EVENT0("callback", "duration2"); |
EndTraceAndFlush(); |
TRACE_EVENT0("callback", "duration3"); |
@@ -2445,18 +2418,15 @@ TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecordingDuration) { |
TEST_F(TraceEventTestFixture, TraceBufferVectorReportFull) { |
TraceLog* trace_log = TraceLog::GetInstance(); |
- trace_log->SetEnabled(CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions()); |
+ trace_log->SetEnabled( |
+ TraceConfig(kRecordAllCategoryFilter, ""), TraceLog::RECORDING_MODE); |
trace_log->logged_events_.reset( |
trace_log->CreateTraceBufferVectorOfSize(100)); |
do { |
TRACE_EVENT_BEGIN_WITH_ID_TID_AND_TIMESTAMP0( |
- "all", "with_timestamp", 0, 0, |
- TimeTicks::NowFromSystemTraceTime().ToInternalValue()); |
+ "all", "with_timestamp", 0, 0, TraceTicks::Now().ToInternalValue()); |
TRACE_EVENT_END_WITH_ID_TID_AND_TIMESTAMP0( |
- "all", "with_timestamp", 0, 0, |
- TimeTicks::NowFromSystemTraceTime().ToInternalValue()); |
+ "all", "with_timestamp", 0, 0, TraceTicks::Now().ToInternalValue()); |
} while (!trace_log->BufferIsFull()); |
EndTraceAndFlush(); |
@@ -2492,9 +2462,9 @@ TEST_F(TraceEventTestFixture, TraceBufferVectorReportFull) { |
} |
TEST_F(TraceEventTestFixture, TraceBufferRingBufferGetReturnChunk) { |
- TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions(RECORD_CONTINUOUSLY)); |
+ TraceLog::GetInstance()->SetEnabled( |
+ TraceConfig(kRecordAllCategoryFilter, RECORD_CONTINUOUSLY), |
+ TraceLog::RECORDING_MODE); |
TraceBuffer* buffer = TraceLog::GetInstance()->trace_buffer(); |
size_t capacity = buffer->Capacity(); |
size_t num_chunks = capacity / TraceBufferChunk::kTraceBufferChunkSize; |
@@ -2552,9 +2522,9 @@ TEST_F(TraceEventTestFixture, TraceBufferRingBufferGetReturnChunk) { |
} |
TEST_F(TraceEventTestFixture, TraceBufferRingBufferHalfIteration) { |
- TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions(RECORD_CONTINUOUSLY)); |
+ TraceLog::GetInstance()->SetEnabled( |
+ TraceConfig(kRecordAllCategoryFilter, RECORD_CONTINUOUSLY), |
+ TraceLog::RECORDING_MODE); |
TraceBuffer* buffer = TraceLog::GetInstance()->trace_buffer(); |
size_t capacity = buffer->Capacity(); |
size_t num_chunks = capacity / TraceBufferChunk::kTraceBufferChunkSize; |
@@ -2580,9 +2550,9 @@ TEST_F(TraceEventTestFixture, TraceBufferRingBufferHalfIteration) { |
} |
TEST_F(TraceEventTestFixture, TraceBufferRingBufferFullIteration) { |
- TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions(RECORD_CONTINUOUSLY)); |
+ TraceLog::GetInstance()->SetEnabled( |
+ TraceConfig(kRecordAllCategoryFilter, RECORD_CONTINUOUSLY), |
+ TraceLog::RECORDING_MODE); |
TraceBuffer* buffer = TraceLog::GetInstance()->trace_buffer(); |
size_t capacity = buffer->Capacity(); |
size_t num_chunks = capacity / TraceBufferChunk::kTraceBufferChunkSize; |
@@ -2607,113 +2577,14 @@ TEST_F(TraceEventTestFixture, TraceBufferRingBufferFullIteration) { |
} |
TEST_F(TraceEventTestFixture, TraceRecordAsMuchAsPossibleMode) { |
- TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions(RECORD_AS_MUCH_AS_POSSIBLE)); |
+ TraceLog::GetInstance()->SetEnabled( |
+ TraceConfig(kRecordAllCategoryFilter, RECORD_AS_MUCH_AS_POSSIBLE), |
+ TraceLog::RECORDING_MODE); |
TraceBuffer* buffer = TraceLog::GetInstance()->trace_buffer(); |
EXPECT_EQ(512000000UL, buffer->Capacity()); |
TraceLog::GetInstance()->SetDisabled(); |
} |
-// Test the category filter. |
-TEST_F(TraceEventTestFixture, CategoryFilter) { |
- // Using the default filter. |
- CategoryFilter default_cf = CategoryFilter( |
- CategoryFilter::kDefaultCategoryFilterString); |
- std::string category_filter_str = default_cf.ToString(); |
- EXPECT_STREQ("-*Debug,-*Test", category_filter_str.c_str()); |
- EXPECT_TRUE(default_cf.IsCategoryGroupEnabled("not-excluded-category")); |
- EXPECT_FALSE( |
- default_cf.IsCategoryGroupEnabled("disabled-by-default-category")); |
- EXPECT_TRUE(default_cf.IsCategoryGroupEnabled("Category1,CategoryDebug")); |
- EXPECT_TRUE(default_cf.IsCategoryGroupEnabled("CategoryDebug,Category1")); |
- EXPECT_TRUE(default_cf.IsCategoryGroupEnabled("CategoryTest,Category2")); |
- |
- // Make sure that upon an empty string, we fall back to the default filter. |
- default_cf = CategoryFilter(); |
- category_filter_str = default_cf.ToString(); |
- EXPECT_STREQ("-*Debug,-*Test", category_filter_str.c_str()); |
- EXPECT_TRUE(default_cf.IsCategoryGroupEnabled("not-excluded-category")); |
- EXPECT_TRUE(default_cf.IsCategoryGroupEnabled("Category1,CategoryDebug")); |
- EXPECT_TRUE(default_cf.IsCategoryGroupEnabled("CategoryDebug,Category1")); |
- EXPECT_TRUE(default_cf.IsCategoryGroupEnabled("CategoryTest,Category2")); |
- |
- // Using an arbitrary non-empty filter. |
- CategoryFilter cf("included,-excluded,inc_pattern*,-exc_pattern*"); |
- category_filter_str = cf.ToString(); |
- EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*", |
- category_filter_str.c_str()); |
- EXPECT_TRUE(cf.IsCategoryGroupEnabled("included")); |
- EXPECT_TRUE(cf.IsCategoryGroupEnabled("inc_pattern_category")); |
- EXPECT_FALSE(cf.IsCategoryGroupEnabled("exc_pattern_category")); |
- EXPECT_FALSE(cf.IsCategoryGroupEnabled("excluded")); |
- EXPECT_FALSE(cf.IsCategoryGroupEnabled("not-excluded-nor-included")); |
- EXPECT_FALSE(cf.IsCategoryGroupEnabled("Category1,CategoryDebug")); |
- EXPECT_FALSE(cf.IsCategoryGroupEnabled("CategoryDebug,Category1")); |
- EXPECT_FALSE(cf.IsCategoryGroupEnabled("CategoryTest,Category2")); |
- |
- cf.Merge(default_cf); |
- category_filter_str = cf.ToString(); |
- EXPECT_STREQ("-excluded,-exc_pattern*,-*Debug,-*Test", |
- category_filter_str.c_str()); |
- cf.Clear(); |
- |
- CategoryFilter reconstructed_cf(category_filter_str); |
- category_filter_str = reconstructed_cf.ToString(); |
- EXPECT_STREQ("-excluded,-exc_pattern*,-*Debug,-*Test", |
- category_filter_str.c_str()); |
- |
- // One included category. |
- CategoryFilter one_inc_cf("only_inc_cat"); |
- category_filter_str = one_inc_cf.ToString(); |
- EXPECT_STREQ("only_inc_cat", category_filter_str.c_str()); |
- |
- // One excluded category. |
- CategoryFilter one_exc_cf("-only_exc_cat"); |
- category_filter_str = one_exc_cf.ToString(); |
- EXPECT_STREQ("-only_exc_cat", category_filter_str.c_str()); |
- |
- // Enabling a disabled- category does not require all categories to be traced |
- // to be included. |
- CategoryFilter disabled_cat("disabled-by-default-cc,-excluded"); |
- EXPECT_STREQ("disabled-by-default-cc,-excluded", |
- disabled_cat.ToString().c_str()); |
- EXPECT_TRUE(disabled_cat.IsCategoryGroupEnabled("disabled-by-default-cc")); |
- EXPECT_TRUE(disabled_cat.IsCategoryGroupEnabled("some_other_group")); |
- EXPECT_FALSE(disabled_cat.IsCategoryGroupEnabled("excluded")); |
- |
- // Enabled a disabled- category and also including makes all categories to |
- // be traced require including. |
- CategoryFilter disabled_inc_cat("disabled-by-default-cc,included"); |
- EXPECT_STREQ("included,disabled-by-default-cc", |
- disabled_inc_cat.ToString().c_str()); |
- EXPECT_TRUE( |
- disabled_inc_cat.IsCategoryGroupEnabled("disabled-by-default-cc")); |
- EXPECT_TRUE(disabled_inc_cat.IsCategoryGroupEnabled("included")); |
- EXPECT_FALSE(disabled_inc_cat.IsCategoryGroupEnabled("other_included")); |
- |
- // Test that IsEmptyOrContainsLeadingOrTrailingWhitespace actually catches |
- // categories that are explicitly forbiden. |
- // This method is called in a DCHECK to assert that we don't have these types |
- // of strings as categories. |
- EXPECT_TRUE(CategoryFilter::IsEmptyOrContainsLeadingOrTrailingWhitespace( |
- " bad_category ")); |
- EXPECT_TRUE(CategoryFilter::IsEmptyOrContainsLeadingOrTrailingWhitespace( |
- " bad_category")); |
- EXPECT_TRUE(CategoryFilter::IsEmptyOrContainsLeadingOrTrailingWhitespace( |
- "bad_category ")); |
- EXPECT_TRUE(CategoryFilter::IsEmptyOrContainsLeadingOrTrailingWhitespace( |
- " bad_category")); |
- EXPECT_TRUE(CategoryFilter::IsEmptyOrContainsLeadingOrTrailingWhitespace( |
- "bad_category ")); |
- EXPECT_TRUE(CategoryFilter::IsEmptyOrContainsLeadingOrTrailingWhitespace( |
- " bad_category ")); |
- EXPECT_TRUE(CategoryFilter::IsEmptyOrContainsLeadingOrTrailingWhitespace( |
- "")); |
- EXPECT_FALSE(CategoryFilter::IsEmptyOrContainsLeadingOrTrailingWhitespace( |
- "good_category")); |
-} |
- |
void BlockUntilStopped(WaitableEvent* task_start_event, |
WaitableEvent* task_stop_event) { |
task_start_event->Signal(); |
@@ -2747,41 +2618,43 @@ TEST_F(TraceEventTestFixture, SetCurrentThreadBlocksMessageLoopBeforeTracing) { |
thread.Stop(); |
} |
-TEST_F(TraceEventTestFixture, ConvertTraceOptionsToInternalOptions) { |
+TEST_F(TraceEventTestFixture, ConvertTraceConfigToInternalOptions) { |
TraceLog* trace_log = TraceLog::GetInstance(); |
- TraceOptions options(RECORD_UNTIL_FULL); |
EXPECT_EQ(TraceLog::kInternalRecordUntilFull, |
- trace_log->GetInternalOptionsFromTraceOptions(options)); |
+ trace_log->GetInternalOptionsFromTraceConfig( |
+ TraceConfig(kRecordAllCategoryFilter, RECORD_UNTIL_FULL))); |
- options.record_mode = RECORD_CONTINUOUSLY; |
EXPECT_EQ(TraceLog::kInternalRecordContinuously, |
- trace_log->GetInternalOptionsFromTraceOptions(options)); |
+ trace_log->GetInternalOptionsFromTraceConfig( |
+ TraceConfig(kRecordAllCategoryFilter, RECORD_CONTINUOUSLY))); |
- options.record_mode = ECHO_TO_CONSOLE; |
EXPECT_EQ(TraceLog::kInternalEchoToConsole, |
- trace_log->GetInternalOptionsFromTraceOptions(options)); |
- |
- options.enable_sampling = true; |
+ trace_log->GetInternalOptionsFromTraceConfig( |
+ TraceConfig(kRecordAllCategoryFilter, ECHO_TO_CONSOLE))); |
- options.record_mode = RECORD_UNTIL_FULL; |
EXPECT_EQ( |
TraceLog::kInternalRecordUntilFull | TraceLog::kInternalEnableSampling, |
- trace_log->GetInternalOptionsFromTraceOptions(options)); |
+ trace_log->GetInternalOptionsFromTraceConfig( |
+ TraceConfig(kRecordAllCategoryFilter, |
+ "record-until-full,enable-sampling"))); |
- options.record_mode = RECORD_CONTINUOUSLY; |
EXPECT_EQ( |
TraceLog::kInternalRecordContinuously | TraceLog::kInternalEnableSampling, |
- trace_log->GetInternalOptionsFromTraceOptions(options)); |
+ trace_log->GetInternalOptionsFromTraceConfig( |
+ TraceConfig(kRecordAllCategoryFilter, |
+ "record-continuously,enable-sampling"))); |
- options.record_mode = ECHO_TO_CONSOLE; |
EXPECT_EQ( |
TraceLog::kInternalEchoToConsole | TraceLog::kInternalEnableSampling, |
- trace_log->GetInternalOptionsFromTraceOptions(options)); |
+ trace_log->GetInternalOptionsFromTraceConfig( |
+ TraceConfig(kRecordAllCategoryFilter, |
+ "trace-to-console,enable-sampling"))); |
- options.enable_systrace = true; |
EXPECT_EQ( |
TraceLog::kInternalEchoToConsole | TraceLog::kInternalEnableSampling, |
- trace_log->GetInternalOptionsFromTraceOptions(options)); |
+ trace_log->GetInternalOptionsFromTraceConfig( |
+ TraceConfig("*", |
+ "trace-to-console,enable-sampling,enable-systrace"))); |
} |
void SetBlockingFlagAndBlockUntilStopped(WaitableEvent* task_start_event, |
@@ -2876,9 +2749,8 @@ TEST_F(TraceEventTestFixture, EchoToConsole) { |
logging::SetLogMessageHandler(MockLogMessageHandler); |
TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions(ECHO_TO_CONSOLE)); |
+ TraceConfig(kRecordAllCategoryFilter, ECHO_TO_CONSOLE), |
+ TraceLog::RECORDING_MODE); |
TRACE_EVENT_BEGIN0("a", "begin_end"); |
{ |
TRACE_EVENT0("b", "duration"); |
@@ -2913,9 +2785,8 @@ TEST_F(TraceEventTestFixture, EchoToConsoleTraceEventRecursion) { |
logging::SetLogMessageHandler(LogMessageHandlerWithTraceEvent); |
TraceLog::GetInstance()->SetEnabled( |
- CategoryFilter("*"), |
- TraceLog::RECORDING_MODE, |
- TraceOptions(ECHO_TO_CONSOLE)); |
+ TraceConfig(kRecordAllCategoryFilter, ECHO_TO_CONSOLE), |
+ TraceLog::RECORDING_MODE); |
{ |
// This should not cause deadlock or infinite recursion. |
TRACE_EVENT0("b", "duration"); |
@@ -2928,7 +2799,7 @@ TEST_F(TraceEventTestFixture, EchoToConsoleTraceEventRecursion) { |
TEST_F(TraceEventTestFixture, TimeOffset) { |
BeginTrace(); |
// Let TraceLog timer start from 0. |
- TimeDelta time_offset = TimeTicks::NowFromSystemTraceTime() - TimeTicks(); |
+ TimeDelta time_offset = TraceTicks::Now() - TraceTicks(); |
TraceLog::GetInstance()->SetTimeOffset(time_offset); |
{ |
@@ -2936,17 +2807,15 @@ TEST_F(TraceEventTestFixture, TimeOffset) { |
TRACE_EVENT0("all", "duration2"); |
} |
TRACE_EVENT_BEGIN_WITH_ID_TID_AND_TIMESTAMP0( |
- "all", "with_timestamp", 0, 0, |
- TimeTicks::NowFromSystemTraceTime().ToInternalValue()); |
+ "all", "with_timestamp", 0, 0, TraceTicks::Now().ToInternalValue()); |
TRACE_EVENT_END_WITH_ID_TID_AND_TIMESTAMP0( |
- "all", "with_timestamp", 0, 0, |
- TimeTicks::NowFromSystemTraceTime().ToInternalValue()); |
+ "all", "with_timestamp", 0, 0, TraceTicks::Now().ToInternalValue()); |
EndTraceAndFlush(); |
DropTracedMetadataRecords(); |
double end_time = static_cast<double>( |
- (TimeTicks::NowFromSystemTraceTime() - time_offset).ToInternalValue()); |
+ (TraceTicks::Now() - time_offset).ToInternalValue()); |
double last_timestamp = 0; |
for (size_t i = 0; i < trace_parsed_.GetSize(); ++i) { |
const DictionaryValue* item; |
@@ -2973,7 +2842,7 @@ TEST_F(TraceEventTestFixture, ConfigureSyntheticDelays) { |
} |
TEST_F(TraceEventTestFixture, BadSyntheticDelayConfigurations) { |
- const char* const configs[] = { |
+ const char* const filters[] = { |
"", |
"DELAY(", |
"DELAY(;", |
@@ -2981,103 +2850,25 @@ TEST_F(TraceEventTestFixture, BadSyntheticDelayConfigurations) { |
"DELAY(test.Delay)", |
"DELAY(test.Delay;)" |
}; |
- for (size_t i = 0; i < arraysize(configs); i++) { |
- BeginSpecificTrace(configs[i]); |
+ for (size_t i = 0; i < arraysize(filters); i++) { |
+ BeginSpecificTrace(filters[i]); |
EndTraceAndFlush(); |
- CategoryFilter filter = TraceLog::GetInstance()->GetCurrentCategoryFilter(); |
- EXPECT_EQ(0u, filter.GetSyntheticDelayValues().size()); |
+ TraceConfig trace_config = TraceLog::GetInstance()->GetCurrentTraceConfig(); |
+ EXPECT_EQ(0u, trace_config.GetSyntheticDelayValues().size()); |
} |
} |
TEST_F(TraceEventTestFixture, SyntheticDelayConfigurationMerging) { |
- CategoryFilter filter1("DELAY(test.Delay1;16)"); |
- CategoryFilter filter2("DELAY(test.Delay2;32)"); |
- filter1.Merge(filter2); |
- EXPECT_EQ(2u, filter1.GetSyntheticDelayValues().size()); |
+ TraceConfig config1("DELAY(test.Delay1;16)", ""); |
+ TraceConfig config2("DELAY(test.Delay2;32)", ""); |
+ config1.Merge(config2); |
+ EXPECT_EQ(2u, config1.GetSyntheticDelayValues().size()); |
} |
TEST_F(TraceEventTestFixture, SyntheticDelayConfigurationToString) { |
- const char config[] = "DELAY(test.Delay;16;oneshot)"; |
- CategoryFilter filter(config); |
- EXPECT_EQ(config, filter.ToString()); |
-} |
- |
-TEST(TraceOptionsTest, TraceOptionsFromString) { |
- TraceOptions options; |
- EXPECT_TRUE(options.SetFromString("record-until-full")); |
- EXPECT_EQ(RECORD_UNTIL_FULL, options.record_mode); |
- EXPECT_FALSE(options.enable_sampling); |
- EXPECT_FALSE(options.enable_systrace); |
- |
- EXPECT_TRUE(options.SetFromString("record-continuously")); |
- EXPECT_EQ(RECORD_CONTINUOUSLY, options.record_mode); |
- EXPECT_FALSE(options.enable_sampling); |
- EXPECT_FALSE(options.enable_systrace); |
- |
- EXPECT_TRUE(options.SetFromString("trace-to-console")); |
- EXPECT_EQ(ECHO_TO_CONSOLE, options.record_mode); |
- EXPECT_FALSE(options.enable_sampling); |
- EXPECT_FALSE(options.enable_systrace); |
- |
- EXPECT_TRUE(options.SetFromString("record-as-much-as-possible")); |
- EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, options.record_mode); |
- EXPECT_FALSE(options.enable_sampling); |
- EXPECT_FALSE(options.enable_systrace); |
- |
- EXPECT_TRUE(options.SetFromString("record-until-full, enable-sampling")); |
- EXPECT_EQ(RECORD_UNTIL_FULL, options.record_mode); |
- EXPECT_TRUE(options.enable_sampling); |
- EXPECT_FALSE(options.enable_systrace); |
- |
- EXPECT_TRUE(options.SetFromString("enable-systrace,record-continuously")); |
- EXPECT_EQ(RECORD_CONTINUOUSLY, options.record_mode); |
- EXPECT_FALSE(options.enable_sampling); |
- EXPECT_TRUE(options.enable_systrace); |
- |
- EXPECT_TRUE(options.SetFromString( |
- "enable-systrace, trace-to-console,enable-sampling")); |
- EXPECT_EQ(ECHO_TO_CONSOLE, options.record_mode); |
- EXPECT_TRUE(options.enable_sampling); |
- EXPECT_TRUE(options.enable_systrace); |
- |
- EXPECT_TRUE(options.SetFromString( |
- "record-continuously,record-until-full,trace-to-console")); |
- EXPECT_EQ(ECHO_TO_CONSOLE, options.record_mode); |
- EXPECT_FALSE(options.enable_systrace); |
- EXPECT_FALSE(options.enable_sampling); |
- |
- EXPECT_TRUE(options.SetFromString("")); |
- EXPECT_EQ(RECORD_UNTIL_FULL, options.record_mode); |
- EXPECT_FALSE(options.enable_systrace); |
- EXPECT_FALSE(options.enable_sampling); |
- |
- EXPECT_FALSE(options.SetFromString("foo-bar-baz")); |
-} |
- |
-TEST(TraceOptionsTest, TraceOptionsToString) { |
- // Test that we can intialize TraceOptions from a string got from |
- // TraceOptions.ToString() method to get a same TraceOptions. |
- TraceRecordMode modes[] = {RECORD_UNTIL_FULL, |
- RECORD_CONTINUOUSLY, |
- ECHO_TO_CONSOLE, |
- RECORD_AS_MUCH_AS_POSSIBLE}; |
- bool enable_sampling_options[] = {true, false}; |
- bool enable_systrace_options[] = {true, false}; |
- |
- for (int i = 0; i < 4; ++i) { |
- for (int j = 0; j < 2; ++j) { |
- for (int k = 0; k < 2; ++k) { |
- TraceOptions original_option = TraceOptions(modes[i]); |
- original_option.enable_sampling = enable_sampling_options[j]; |
- original_option.enable_systrace = enable_systrace_options[k]; |
- TraceOptions new_options; |
- EXPECT_TRUE(new_options.SetFromString(original_option.ToString())); |
- EXPECT_EQ(original_option.record_mode, new_options.record_mode); |
- EXPECT_EQ(original_option.enable_sampling, new_options.enable_sampling); |
- EXPECT_EQ(original_option.enable_systrace, new_options.enable_systrace); |
- } |
- } |
- } |
+ const char filter[] = "DELAY(test.Delay;16;oneshot)"; |
+ TraceConfig config(filter, ""); |
+ EXPECT_EQ(filter, config.ToCategoryFilterString()); |
} |
} // namespace trace_event |