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

Unified Diff: base/debug/trace_event_unittest.cc

Issue 12150004: Category group support/Renamings. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: More renamings and category filter cleanups. Created 7 years, 10 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
Index: base/debug/trace_event_unittest.cc
diff --git a/base/debug/trace_event_unittest.cc b/base/debug/trace_event_unittest.cc
index 15e11a70f4829a10ded2606e6f52d1fe1e5e0e92..3fcaf65d5d4f88968c5b89a46ac87516ebf860fb 100644
--- a/base/debug/trace_event_unittest.cc
+++ b/base/debug/trace_event_unittest.cc
@@ -73,7 +73,7 @@ class TraceEventTestFixture : public testing::Test {
void BeginTrace() {
event_watch_notification_ = 0;
- TraceLog::GetInstance()->SetEnabled("*");
+ TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"));
}
void EndTraceAndFlush() {
@@ -714,7 +714,7 @@ void HighResSleepForTraceTest(base::TimeDelta elapsed) {
// Simple Test for emitting data and validating it was received.
TEST_F(TraceEventTestFixture, DataCaptured) {
ManualTestSetUp();
- TraceLog::GetInstance()->SetEnabled(true);
+ TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"));
TraceWithAllMacroVariants(NULL);
@@ -738,18 +738,19 @@ TEST_F(TraceEventTestFixture, EnabledObserverFiresOnEnable) {
EXPECT_CALL(observer, OnTraceLogWillEnable())
.Times(1);
- TraceLog::GetInstance()->SetEnabled(true);
+ TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"));
testing::Mock::VerifyAndClear(&observer);
// Cleanup.
TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer);
- TraceLog::GetInstance()->SetEnabled(false);
+ TraceLog::GetInstance()->SetDisabled();
}
TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnSecondEnable) {
ManualTestSetUp();
- TraceLog::GetInstance()->SetEnabled(true);
+ CategoryFilter cf_inc_all("*");
+ TraceLog::GetInstance()->SetEnabled(cf_inc_all);
testing::StrictMock<MockEnabledStateChangedObserver> observer;
TraceLog::GetInstance()->AddEnabledStateObserver(&observer);
@@ -758,20 +759,21 @@ TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnSecondEnable) {
.Times(0);
EXPECT_CALL(observer, OnTraceLogWillDisable())
.Times(0);
- TraceLog::GetInstance()->SetEnabled(true);
+ TraceLog::GetInstance()->SetEnabled(cf_inc_all);
testing::Mock::VerifyAndClear(&observer);
// Cleanup.
TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer);
- TraceLog::GetInstance()->SetEnabled(false);
- TraceLog::GetInstance()->SetEnabled(false);
+ TraceLog::GetInstance()->SetDisabled();
+ TraceLog::GetInstance()->SetDisabled();
}
TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnNestedDisable) {
ManualTestSetUp();
- TraceLog::GetInstance()->SetEnabled(true);
- TraceLog::GetInstance()->SetEnabled(true);
+ CategoryFilter cf_inc_all("*");
+ TraceLog::GetInstance()->SetEnabled(cf_inc_all);
+ TraceLog::GetInstance()->SetEnabled(cf_inc_all);
testing::StrictMock<MockEnabledStateChangedObserver> observer;
TraceLog::GetInstance()->AddEnabledStateObserver(&observer);
@@ -780,31 +782,75 @@ TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnNestedDisable) {
.Times(0);
EXPECT_CALL(observer, OnTraceLogWillDisable())
.Times(0);
- TraceLog::GetInstance()->SetEnabled(false);
+ TraceLog::GetInstance()->SetDisabled();
testing::Mock::VerifyAndClear(&observer);
// Cleanup.
TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer);
- TraceLog::GetInstance()->SetEnabled(false);
+ TraceLog::GetInstance()->SetDisabled();
}
TEST_F(TraceEventTestFixture, EnabledObserverFiresOnDisable) {
ManualTestSetUp();
-
- TraceLog::GetInstance()->SetEnabled(true);
+ TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"));
MockEnabledStateChangedObserver observer;
TraceLog::GetInstance()->AddEnabledStateObserver(&observer);
EXPECT_CALL(observer, OnTraceLogWillDisable())
.Times(1);
- TraceLog::GetInstance()->SetEnabled(false);
+ TraceLog::GetInstance()->SetDisabled();
testing::Mock::VerifyAndClear(&observer);
// Cleanup.
TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer);
}
+// Test the category filter.
+TEST_F(TraceEventTestFixture, CategoryFilter) {
+ ManualTestSetUp();
+
+ // Using the default filter.
+ CategoryFilter default_cf = CategoryFilter();
+ scoped_refptr<base::RefCountedString> cf_str_ptr =
+ new base::RefCountedString();
+ default_cf.ToString(&(cf_str_ptr->data()));
+ EXPECT_STREQ("-*Debug,-*Test,", cf_str_ptr->data().c_str());
+ EXPECT_TRUE(default_cf.IsCategoryGroupEnabled("not-excluded-category"));
+ EXPECT_FALSE(default_cf.IsCategoryGroupEnabled("Category1,CategoryDebug"));
+ EXPECT_FALSE(default_cf.IsCategoryGroupEnabled("CategoryDebug,Category1"));
+ EXPECT_FALSE(default_cf.IsCategoryGroupEnabled("CategoryTest,Category2"));
+
+ // Using an arbitrary non-empty filter.
+ CategoryFilter cf("included,-excluded,inc_pattern*,-exc_pattern*");
+ cf_str_ptr = new base::RefCountedString();
+ cf.ToString(&(cf_str_ptr->data()));
+ EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*,",
+ cf_str_ptr->data().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);
+ cf_str_ptr = new base::RefCountedString();
+ cf.ToString(&(cf_str_ptr->data()));
+ EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*,-*Debug,-*Test,",
+ cf_str_ptr->data().c_str());
+ cf.Clear();
+ EXPECT_FALSE(cf.HasIncludedCategories());
+
+ CategoryFilter reconstructed_cf(cf_str_ptr->data());
+ cf_str_ptr = new base::RefCountedString();
+ reconstructed_cf.ToString(&(cf_str_ptr->data()));
+ EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*,-*Debug,-*Test,",
+ cf_str_ptr->data().c_str());
+}
+
// Test that categories work.
TEST_F(TraceEventTestFixture, Categories) {
ManualTestSetUp();
@@ -816,25 +862,30 @@ TEST_F(TraceEventTestFixture, Categories) {
BeginTrace();
TRACE_EVENT_INSTANT0("c3", "name");
TRACE_EVENT_INSTANT0("c4", "name");
+ //Category groups containing more than one category.
+ TRACE_EVENT_INSTANT0("c5,c6", "name");
+ TRACE_EVENT_INSTANT0("c7,c8", "name");
EndTraceAndFlush();
- std::vector<std::string> cats;
- TraceLog::GetInstance()->GetKnownCategories(&cats);
- EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c1") != cats.end());
- EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c2") != cats.end());
- EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c3") != cats.end());
- EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c4") != cats.end());
-
- const std::vector<std::string> empty_categories;
- std::vector<std::string> included_categories;
- std::vector<std::string> excluded_categories;
+ std::vector<std::string> cat_groups;
+ TraceLog::GetInstance()->GetKnownCategoryGroups(&cat_groups);
+ EXPECT_TRUE(std::find(cat_groups.begin(),
+ cat_groups.end(), "c1") != cat_groups.end());
+ EXPECT_TRUE(std::find(cat_groups.begin(),
+ cat_groups.end(), "c2") != cat_groups.end());
+ EXPECT_TRUE(std::find(cat_groups.begin(),
+ cat_groups.end(), "c3") != cat_groups.end());
+ EXPECT_TRUE(std::find(cat_groups.begin(),
+ cat_groups.end(), "c4") != cat_groups.end());
+ EXPECT_TRUE(std::find(cat_groups.begin(),
+ cat_groups.end(), "c5,c6") != cat_groups.end());
+ EXPECT_TRUE(std::find(cat_groups.begin(),
+ cat_groups.end(), "c7,c8") != cat_groups.end());
// Test that category filtering works.
// Include nonexistent category -> no events
Clear();
- included_categories.clear();
- included_categories.push_back("not_found823564786");
- TraceLog::GetInstance()->SetEnabled(included_categories, empty_categories);
+ TraceLog::GetInstance()->SetEnabled(CategoryFilter("not_found823564786"));
TRACE_EVENT_INSTANT0("cat1", "name");
TRACE_EVENT_INSTANT0("cat2", "name");
EndTraceAndFlush();
@@ -842,9 +893,8 @@ TEST_F(TraceEventTestFixture, Categories) {
// Include existent category -> only events of that category
Clear();
- included_categories.clear();
- included_categories.push_back("inc");
- TraceLog::GetInstance()->SetEnabled(included_categories, empty_categories);
+ TraceLog::GetInstance()->SetEnabled(CategoryFilter("inc"));
+
TRACE_EVENT_INSTANT0("inc", "name");
TRACE_EVENT_INSTANT0("inc2", "name");
EndTraceAndFlush();
@@ -853,11 +903,12 @@ TEST_F(TraceEventTestFixture, Categories) {
// Include existent wildcard -> all categories matching wildcard
Clear();
- included_categories.clear();
- included_categories.push_back("inc_wildcard_*");
- included_categories.push_back("inc_wildchar_?_end");
- TraceLog::GetInstance()->SetEnabled(included_categories, empty_categories);
+ TraceLog::GetInstance()->SetEnabled(
+ CategoryFilter("inc_wildcard_*,inc_wildchar_?_end"));
TRACE_EVENT_INSTANT0("inc_wildcard_abc", "included");
+ TRACE_EVENT_INSTANT0("inc_wildcard_category,other_category", "included");
+ TRACE_EVENT_INSTANT0("non_included_category,inc_wildcard_category",
+ "included");
TRACE_EVENT_INSTANT0("inc_wildcard_", "included");
TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "included");
TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "not_inc");
@@ -865,40 +916,41 @@ TEST_F(TraceEventTestFixture, Categories) {
TRACE_EVENT_INSTANT0("cat2", "not_inc");
EndTraceAndFlush();
EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_abc"));
+ EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_category,other_category"));
+ EXPECT_TRUE(FindMatchingValue("cat",
+ "non_included_category,inc_wildcard_category"));
EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_"));
EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_x_end"));
EXPECT_FALSE(FindMatchingValue("name", "not_inc"));
- included_categories.clear();
-
// Exclude nonexistent category -> all events
Clear();
- excluded_categories.clear();
- excluded_categories.push_back("not_found823564786");
- TraceLog::GetInstance()->SetEnabled(empty_categories, excluded_categories);
+ TraceLog::GetInstance()->SetEnabled(CategoryFilter("-not_found823564786"));
TRACE_EVENT_INSTANT0("cat1", "name");
TRACE_EVENT_INSTANT0("cat2", "name");
+ TRACE_EVENT_INSTANT0("category1,category2", "name");
EndTraceAndFlush();
EXPECT_TRUE(FindMatchingValue("cat", "cat1"));
EXPECT_TRUE(FindMatchingValue("cat", "cat2"));
+ EXPECT_TRUE(FindMatchingValue("cat", "category1,category2"));
// Exclude existent category -> only events of other categories
Clear();
- excluded_categories.clear();
- excluded_categories.push_back("inc");
- TraceLog::GetInstance()->SetEnabled(empty_categories, excluded_categories);
+ TraceLog::GetInstance()->SetEnabled(CategoryFilter("-inc"));
TRACE_EVENT_INSTANT0("inc", "name");
+ TRACE_EVENT_INSTANT0("inc2,inc", "name");
+ TRACE_EVENT_INSTANT0("inc,inc2", "name");
TRACE_EVENT_INSTANT0("inc2", "name");
EndTraceAndFlush();
EXPECT_TRUE(FindMatchingValue("cat", "inc2"));
EXPECT_FALSE(FindMatchingValue("cat", "inc"));
+ EXPECT_FALSE(FindMatchingValue("cat", "inc2,inc"));
+ EXPECT_FALSE(FindMatchingValue("cat", "inc,inc2"));
// Exclude existent wildcard -> all categories not matching wildcard
Clear();
- excluded_categories.clear();
- excluded_categories.push_back("inc_wildcard_*");
- excluded_categories.push_back("inc_wildchar_?_end");
- TraceLog::GetInstance()->SetEnabled(empty_categories, excluded_categories);
+ TraceLog::GetInstance()->SetEnabled(
+ CategoryFilter("-inc_wildcard_*,-inc_wildchar_?_end"));
TRACE_EVENT_INSTANT0("inc_wildcard_abc", "not_inc");
TRACE_EVENT_INSTANT0("inc_wildcard_", "not_inc");
TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "not_inc");
@@ -1431,17 +1483,17 @@ TEST_F(TraceEventTestFixture, TraceEnableDisable) {
ManualTestSetUp();
TraceLog* trace_log = TraceLog::GetInstance();
- trace_log->SetEnabled(std::string());
+ CategoryFilter cf_empty("");
+ trace_log->SetEnabled(cf_empty);
EXPECT_TRUE(trace_log->IsEnabled());
trace_log->SetDisabled();
EXPECT_FALSE(trace_log->IsEnabled());
- trace_log->SetEnabled(true);
+ trace_log->SetEnabled(cf_empty);
EXPECT_TRUE(trace_log->IsEnabled());
- const std::vector<std::string> empty;
- trace_log->SetEnabled(empty, empty);
+ trace_log->SetEnabled(cf_empty);
EXPECT_TRUE(trace_log->IsEnabled());
- trace_log->SetEnabled(false);
+ trace_log->SetDisabled();
EXPECT_TRUE(trace_log->IsEnabled());
trace_log->SetDisabled();
EXPECT_FALSE(trace_log->IsEnabled());
@@ -1451,29 +1503,29 @@ TEST_F(TraceEventTestFixture, TraceCategoriesAfterNestedEnable) {
ManualTestSetUp();
TraceLog* trace_log = TraceLog::GetInstance();
- trace_log->SetEnabled(std::string("foo,bar"));
- EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo"));
- EXPECT_TRUE(*trace_log->GetCategoryEnabled("bar"));
- EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz"));
- trace_log->SetEnabled(std::string("foo2"));
- EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo2"));
- EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz"));
- trace_log->SetEnabled(std::string(""));
- EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo"));
- EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz"));
+ trace_log->SetEnabled(CategoryFilter("foo,bar"));
+ EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo"));
+ EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("bar"));
+ EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("baz"));
+ trace_log->SetEnabled(CategoryFilter("foo2"));
+ EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo2"));
+ EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("baz"));
+ trace_log->SetEnabled(CategoryFilter(""));
+ EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo"));
+ EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("baz"));
trace_log->SetDisabled();
trace_log->SetDisabled();
trace_log->SetDisabled();
- EXPECT_FALSE(*trace_log->GetCategoryEnabled("foo"));
- EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz"));
-
- trace_log->SetEnabled(std::string("-foo,-bar"));
- EXPECT_FALSE(*trace_log->GetCategoryEnabled("foo"));
- EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz"));
- trace_log->SetEnabled(std::string("moo"));
- EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz"));
- EXPECT_TRUE(*trace_log->GetCategoryEnabled("moo"));
- EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo"));
+ EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("foo"));
+ EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("baz"));
+
+ trace_log->SetEnabled(CategoryFilter("-foo,-bar"));
+ EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("foo"));
+ EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("baz"));
+ trace_log->SetEnabled(CategoryFilter("moo"));
+ EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("baz"));
+ EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("moo"));
+ EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo"));
trace_log->SetDisabled();
trace_log->SetDisabled();
}

Powered by Google App Engine
This is Rietveld 408576698