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

Side by Side Diff: base/debug/trace_event_unittest.cc

Issue 11802005: Enable overlapping, usage counted SetEnabled()/SetDisabled() for TraceLog (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed fatal warning on win Created 7 years, 11 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/debug/trace_event_impl.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/debug/trace_event_unittest.h" 5 #include "base/debug/trace_event_unittest.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 trace_parsed_.Clear(); 64 trace_parsed_.Clear();
65 json_output_.json_output.clear(); 65 json_output_.json_output.clear();
66 } 66 }
67 67
68 void BeginTrace() { 68 void BeginTrace() {
69 event_watch_notification_ = 0; 69 event_watch_notification_ = 0;
70 TraceLog::GetInstance()->SetEnabled("*"); 70 TraceLog::GetInstance()->SetEnabled("*");
71 } 71 }
72 72
73 void EndTraceAndFlush() { 73 void EndTraceAndFlush() {
74 TraceLog::GetInstance()->SetDisabled(); 74 while (TraceLog::GetInstance()->IsEnabled())
75 TraceLog::GetInstance()->SetDisabled();
75 TraceLog::GetInstance()->Flush( 76 TraceLog::GetInstance()->Flush(
76 base::Bind(&TraceEventTestFixture::OnTraceDataCollected, 77 base::Bind(&TraceEventTestFixture::OnTraceDataCollected,
77 base::Unretained(this))); 78 base::Unretained(this)));
78 } 79 }
79 80
80 virtual void SetUp() OVERRIDE { 81 virtual void SetUp() OVERRIDE {
81 old_thread_name_ = PlatformThread::GetName(); 82 old_thread_name_ = PlatformThread::GetName();
82 } 83 }
83 virtual void TearDown() OVERRIDE { 84 virtual void TearDown() OVERRIDE {
84 if (TraceLog::GetInstance()) 85 if (TraceLog::GetInstance())
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 EXPECT_CALL(observer, OnTraceLogWillEnable()) 690 EXPECT_CALL(observer, OnTraceLogWillEnable())
690 .Times(0); 691 .Times(0);
691 EXPECT_CALL(observer, OnTraceLogWillDisable()) 692 EXPECT_CALL(observer, OnTraceLogWillDisable())
692 .Times(0); 693 .Times(0);
693 TraceLog::GetInstance()->SetEnabled(true); 694 TraceLog::GetInstance()->SetEnabled(true);
694 testing::Mock::VerifyAndClear(&observer); 695 testing::Mock::VerifyAndClear(&observer);
695 696
696 // Cleanup. 697 // Cleanup.
697 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); 698 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer);
698 TraceLog::GetInstance()->SetEnabled(false); 699 TraceLog::GetInstance()->SetEnabled(false);
700 TraceLog::GetInstance()->SetEnabled(false);
699 } 701 }
700 702
701 TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnUselessDisable) { 703 TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnNestedDisable) {
702 ManualTestSetUp(); 704 ManualTestSetUp();
703 705
706 TraceLog::GetInstance()->SetEnabled(true);
707 TraceLog::GetInstance()->SetEnabled(true);
704 708
705 testing::StrictMock<MockEnabledStateChangedObserver> observer; 709 testing::StrictMock<MockEnabledStateChangedObserver> observer;
706 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); 710 TraceLog::GetInstance()->AddEnabledStateObserver(&observer);
707 711
708 EXPECT_CALL(observer, OnTraceLogWillEnable()) 712 EXPECT_CALL(observer, OnTraceLogWillEnable())
709 .Times(0); 713 .Times(0);
710 EXPECT_CALL(observer, OnTraceLogWillDisable()) 714 EXPECT_CALL(observer, OnTraceLogWillDisable())
711 .Times(0); 715 .Times(0);
712 TraceLog::GetInstance()->SetEnabled(false); 716 TraceLog::GetInstance()->SetEnabled(false);
713 testing::Mock::VerifyAndClear(&observer); 717 testing::Mock::VerifyAndClear(&observer);
714 718
715 // Cleanup. 719 // Cleanup.
716 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); 720 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer);
721 TraceLog::GetInstance()->SetEnabled(false);
717 } 722 }
718 723
719 TEST_F(TraceEventTestFixture, EnabledObserverFiresOnDisable) { 724 TEST_F(TraceEventTestFixture, EnabledObserverFiresOnDisable) {
720 ManualTestSetUp(); 725 ManualTestSetUp();
721 726
722 TraceLog::GetInstance()->SetEnabled(true); 727 TraceLog::GetInstance()->SetEnabled(true);
723 728
724 MockEnabledStateChangedObserver observer; 729 MockEnabledStateChangedObserver observer;
725 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); 730 TraceLog::GetInstance()->AddEnabledStateObserver(&observer);
726 731
(...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after
1330 EXPECT_STREQ(json_output_.json_output.c_str(), "[bla1,bla2,bla3,bla4]"); 1335 EXPECT_STREQ(json_output_.json_output.c_str(), "[bla1,bla2,bla3,bla4]");
1331 1336
1332 Clear(); 1337 Clear();
1333 1338
1334 trace_buffer_.Start(); 1339 trace_buffer_.Start();
1335 trace_buffer_.AddFragment("bla1,bla2,bla3,bla4"); 1340 trace_buffer_.AddFragment("bla1,bla2,bla3,bla4");
1336 trace_buffer_.Finish(); 1341 trace_buffer_.Finish();
1337 EXPECT_STREQ(json_output_.json_output.c_str(), "[bla1,bla2,bla3,bla4]"); 1342 EXPECT_STREQ(json_output_.json_output.c_str(), "[bla1,bla2,bla3,bla4]");
1338 } 1343 }
1339 1344
1345 TEST_F(TraceEventTestFixture, TraceEnableDisable) {
1346 ManualTestSetUp();
1347
1348 TraceLog* trace_log = TraceLog::GetInstance();
1349 trace_log->SetEnabled(std::string());
1350 EXPECT_TRUE(trace_log->IsEnabled());
1351 trace_log->SetDisabled();
1352 EXPECT_FALSE(trace_log->IsEnabled());
1353
1354 trace_log->SetEnabled(true);
1355 EXPECT_TRUE(trace_log->IsEnabled());
1356 const std::vector<std::string> empty;
1357 trace_log->SetEnabled(empty, empty);
1358 EXPECT_TRUE(trace_log->IsEnabled());
1359 trace_log->SetEnabled(false);
1360 EXPECT_TRUE(trace_log->IsEnabled());
1361 trace_log->SetDisabled();
1362 EXPECT_FALSE(trace_log->IsEnabled());
1363 }
1364
1365 TEST_F(TraceEventTestFixture, TraceCategoriesAfterNestedEnable) {
1366 ManualTestSetUp();
1367
1368 TraceLog* trace_log = TraceLog::GetInstance();
1369 trace_log->SetEnabled(std::string("foo,bar"));
1370 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo"));
1371 EXPECT_TRUE(*trace_log->GetCategoryEnabled("bar"));
1372 EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz"));
1373 trace_log->SetEnabled(std::string("foo2"));
1374 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo2"));
1375 EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz"));
1376 trace_log->SetEnabled(std::string(""));
1377 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo"));
1378 EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz"));
1379 trace_log->SetDisabled();
1380 trace_log->SetDisabled();
1381 trace_log->SetDisabled();
1382 EXPECT_FALSE(*trace_log->GetCategoryEnabled("foo"));
1383 EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz"));
1384
1385 trace_log->SetEnabled(std::string("-foo,-bar"));
1386 EXPECT_FALSE(*trace_log->GetCategoryEnabled("foo"));
1387 EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz"));
1388 trace_log->SetEnabled(std::string("moo"));
1389 EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz"));
1390 EXPECT_TRUE(*trace_log->GetCategoryEnabled("moo"));
1391 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo"));
1392 trace_log->SetDisabled();
1393 trace_log->SetDisabled();
1394 }
1395
1340 } // namespace debug 1396 } // namespace debug
1341 } // namespace base 1397 } // namespace base
OLDNEW
« no previous file with comments | « base/debug/trace_event_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698