| OLD | NEW | 
|---|
| 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 // Test of classes in the tracked_objects.h classes. | 5 // Test of classes in the tracked_objects.h classes. | 
| 6 | 6 | 
| 7 #include "base/tracked_objects.h" | 7 #include "base/tracked_objects.h" | 
| 8 | 8 | 
| 9 #include <stddef.h> | 9 #include <stddef.h> | 
| 10 | 10 | 
| (...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 375 TEST_F(TrackedObjectsTest, LifeCycleToSnapshotMainThread) { | 375 TEST_F(TrackedObjectsTest, LifeCycleToSnapshotMainThread) { | 
| 376   if (!ThreadData::InitializeAndSetTrackingStatus( | 376   if (!ThreadData::InitializeAndSetTrackingStatus( | 
| 377           ThreadData::PROFILING_CHILDREN_ACTIVE)) { | 377           ThreadData::PROFILING_CHILDREN_ACTIVE)) { | 
| 378     return; | 378     return; | 
| 379   } | 379   } | 
| 380 | 380 | 
| 381   const char kFunction[] = "LifeCycleToSnapshotMainThread"; | 381   const char kFunction[] = "LifeCycleToSnapshotMainThread"; | 
| 382   Location location(kFunction, kFile, kLineNumber, NULL); | 382   Location location(kFunction, kFile, kLineNumber, NULL); | 
| 383   TallyABirth(location, kMainThreadName); | 383   TallyABirth(location, kMainThreadName); | 
| 384 | 384 | 
| 385   const base::TimeTicks kTimePosted = base::TimeTicks() + | 385   const TrackedTime kTimePosted = TrackedTime::FromMilliseconds(1); | 
| 386       base::TimeDelta::FromMilliseconds(1); |  | 
| 387   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 386   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 
| 388   // TrackingInfo will call TallyABirth() during construction. | 387   // TrackingInfo will call TallyABirth() during construction. | 
| 389   base::TrackingInfo pending_task(location, kDelayedStartTime); | 388   base::TrackingInfo pending_task(location, kDelayedStartTime); | 
| 390   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 389   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 
| 391 | 390 | 
| 392   const unsigned int kStartOfRun = 5; | 391   const unsigned int kStartOfRun = 5; | 
| 393   const unsigned int kEndOfRun = 7; | 392   const unsigned int kEndOfRun = 7; | 
| 394   SetTestTime(kStartOfRun); | 393   SetTestTime(kStartOfRun); | 
| 395   TaskStopwatch stopwatch; | 394   TaskStopwatch stopwatch; | 
| 396   stopwatch.Start(); | 395   stopwatch.Start(); | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
| 412 TEST_F(TrackedObjectsTest, LifeCycleMidDeactivatedToSnapshotMainThread) { | 411 TEST_F(TrackedObjectsTest, LifeCycleMidDeactivatedToSnapshotMainThread) { | 
| 413   if (!ThreadData::InitializeAndSetTrackingStatus( | 412   if (!ThreadData::InitializeAndSetTrackingStatus( | 
| 414           ThreadData::PROFILING_CHILDREN_ACTIVE)) { | 413           ThreadData::PROFILING_CHILDREN_ACTIVE)) { | 
| 415     return; | 414     return; | 
| 416   } | 415   } | 
| 417 | 416 | 
| 418   const char kFunction[] = "LifeCycleMidDeactivatedToSnapshotMainThread"; | 417   const char kFunction[] = "LifeCycleMidDeactivatedToSnapshotMainThread"; | 
| 419   Location location(kFunction, kFile, kLineNumber, NULL); | 418   Location location(kFunction, kFile, kLineNumber, NULL); | 
| 420   TallyABirth(location, kMainThreadName); | 419   TallyABirth(location, kMainThreadName); | 
| 421 | 420 | 
| 422   const base::TimeTicks kTimePosted = base::TimeTicks() + | 421   const TrackedTime kTimePosted = TrackedTime::FromMilliseconds(1); | 
| 423       base::TimeDelta::FromMilliseconds(1); |  | 
| 424   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 422   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 
| 425   // TrackingInfo will call TallyABirth() during construction. | 423   // TrackingInfo will call TallyABirth() during construction. | 
| 426   base::TrackingInfo pending_task(location, kDelayedStartTime); | 424   base::TrackingInfo pending_task(location, kDelayedStartTime); | 
| 427   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 425   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 
| 428 | 426 | 
| 429   // Turn off tracking now that we have births. | 427   // Turn off tracking now that we have births. | 
| 430   EXPECT_TRUE(ThreadData::InitializeAndSetTrackingStatus( | 428   EXPECT_TRUE(ThreadData::InitializeAndSetTrackingStatus( | 
| 431       ThreadData::DEACTIVATED)); | 429       ThreadData::DEACTIVATED)); | 
| 432 | 430 | 
| 433   const unsigned int kStartOfRun = 5; | 431   const unsigned int kStartOfRun = 5; | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
| 451 TEST_F(TrackedObjectsTest, LifeCyclePreDeactivatedToSnapshotMainThread) { | 449 TEST_F(TrackedObjectsTest, LifeCyclePreDeactivatedToSnapshotMainThread) { | 
| 452   // Start in the deactivated state. | 450   // Start in the deactivated state. | 
| 453   if (!ThreadData::InitializeAndSetTrackingStatus(ThreadData::DEACTIVATED)) { | 451   if (!ThreadData::InitializeAndSetTrackingStatus(ThreadData::DEACTIVATED)) { | 
| 454     return; | 452     return; | 
| 455   } | 453   } | 
| 456 | 454 | 
| 457   const char kFunction[] = "LifeCyclePreDeactivatedToSnapshotMainThread"; | 455   const char kFunction[] = "LifeCyclePreDeactivatedToSnapshotMainThread"; | 
| 458   Location location(kFunction, kFile, kLineNumber, NULL); | 456   Location location(kFunction, kFile, kLineNumber, NULL); | 
| 459   TallyABirth(location, kMainThreadName); | 457   TallyABirth(location, kMainThreadName); | 
| 460 | 458 | 
| 461   const base::TimeTicks kTimePosted = base::TimeTicks() + | 459   const TrackedTime kTimePosted = TrackedTime::FromMilliseconds(1); | 
| 462       base::TimeDelta::FromMilliseconds(1); |  | 
| 463   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 460   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 
| 464   // TrackingInfo will call TallyABirth() during construction. | 461   // TrackingInfo will call TallyABirth() during construction. | 
| 465   base::TrackingInfo pending_task(location, kDelayedStartTime); | 462   base::TrackingInfo pending_task(location, kDelayedStartTime); | 
| 466   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 463   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 
| 467 | 464 | 
| 468   const unsigned int kStartOfRun = 5; | 465   const unsigned int kStartOfRun = 5; | 
| 469   const unsigned int kEndOfRun = 7; | 466   const unsigned int kEndOfRun = 7; | 
| 470   SetTestTime(kStartOfRun); | 467   SetTestTime(kStartOfRun); | 
| 471   TaskStopwatch stopwatch; | 468   TaskStopwatch stopwatch; | 
| 472   stopwatch.Start(); | 469   stopwatch.Start(); | 
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 549 TEST_F(TrackedObjectsTest, TwoLives) { | 546 TEST_F(TrackedObjectsTest, TwoLives) { | 
| 550   if (!ThreadData::InitializeAndSetTrackingStatus( | 547   if (!ThreadData::InitializeAndSetTrackingStatus( | 
| 551           ThreadData::PROFILING_CHILDREN_ACTIVE)) { | 548           ThreadData::PROFILING_CHILDREN_ACTIVE)) { | 
| 552     return; | 549     return; | 
| 553   } | 550   } | 
| 554 | 551 | 
| 555   const char kFunction[] = "TwoLives"; | 552   const char kFunction[] = "TwoLives"; | 
| 556   Location location(kFunction, kFile, kLineNumber, NULL); | 553   Location location(kFunction, kFile, kLineNumber, NULL); | 
| 557   TallyABirth(location, kMainThreadName); | 554   TallyABirth(location, kMainThreadName); | 
| 558 | 555 | 
| 559   const base::TimeTicks kTimePosted = base::TimeTicks() + | 556   const TrackedTime kTimePosted = TrackedTime::FromMilliseconds(1); | 
| 560       base::TimeDelta::FromMilliseconds(1); |  | 
| 561   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 557   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 
| 562   // TrackingInfo will call TallyABirth() during construction. | 558   // TrackingInfo will call TallyABirth() during construction. | 
| 563   base::TrackingInfo pending_task(location, kDelayedStartTime); | 559   base::TrackingInfo pending_task(location, kDelayedStartTime); | 
| 564   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 560   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 
| 565 | 561 | 
| 566   const unsigned int kStartOfRun = 5; | 562   const unsigned int kStartOfRun = 5; | 
| 567   const unsigned int kEndOfRun = 7; | 563   const unsigned int kEndOfRun = 7; | 
| 568   SetTestTime(kStartOfRun); | 564   SetTestTime(kStartOfRun); | 
| 569   TaskStopwatch stopwatch; | 565   TaskStopwatch stopwatch; | 
| 570   stopwatch.Start(); | 566   stopwatch.Start(); | 
| (...skipping 23 matching lines...) Expand all  Loading... | 
| 594   if (!ThreadData::InitializeAndSetTrackingStatus( | 590   if (!ThreadData::InitializeAndSetTrackingStatus( | 
| 595           ThreadData::PROFILING_CHILDREN_ACTIVE)) { | 591           ThreadData::PROFILING_CHILDREN_ACTIVE)) { | 
| 596     return; | 592     return; | 
| 597   } | 593   } | 
| 598 | 594 | 
| 599   // Use a well named thread. | 595   // Use a well named thread. | 
| 600   ThreadData::InitializeThreadContext(kMainThreadName); | 596   ThreadData::InitializeThreadContext(kMainThreadName); | 
| 601   const char kFunction[] = "DifferentLives"; | 597   const char kFunction[] = "DifferentLives"; | 
| 602   Location location(kFunction, kFile, kLineNumber, NULL); | 598   Location location(kFunction, kFile, kLineNumber, NULL); | 
| 603 | 599 | 
| 604   const base::TimeTicks kTimePosted = base::TimeTicks() + | 600   const TrackedTime kTimePosted = TrackedTime::FromMilliseconds(1); | 
| 605       base::TimeDelta::FromMilliseconds(1); |  | 
| 606   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 601   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 
| 607   // TrackingInfo will call TallyABirth() during construction. | 602   // TrackingInfo will call TallyABirth() during construction. | 
| 608   base::TrackingInfo pending_task(location, kDelayedStartTime); | 603   base::TrackingInfo pending_task(location, kDelayedStartTime); | 
| 609   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 604   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 
| 610 | 605 | 
| 611   const unsigned int kStartOfRun = 5; | 606   const unsigned int kStartOfRun = 5; | 
| 612   const unsigned int kEndOfRun = 7; | 607   const unsigned int kEndOfRun = 7; | 
| 613   SetTestTime(kStartOfRun); | 608   SetTestTime(kStartOfRun); | 
| 614   TaskStopwatch stopwatch; | 609   TaskStopwatch stopwatch; | 
| 615   stopwatch.Start(); | 610   stopwatch.Start(); | 
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 661 TEST_F(TrackedObjectsTest, TaskWithNestedExclusion) { | 656 TEST_F(TrackedObjectsTest, TaskWithNestedExclusion) { | 
| 662   if (!ThreadData::InitializeAndSetTrackingStatus( | 657   if (!ThreadData::InitializeAndSetTrackingStatus( | 
| 663           ThreadData::PROFILING_CHILDREN_ACTIVE)) { | 658           ThreadData::PROFILING_CHILDREN_ACTIVE)) { | 
| 664     return; | 659     return; | 
| 665   } | 660   } | 
| 666 | 661 | 
| 667   const char kFunction[] = "TaskWithNestedExclusion"; | 662   const char kFunction[] = "TaskWithNestedExclusion"; | 
| 668   Location location(kFunction, kFile, kLineNumber, NULL); | 663   Location location(kFunction, kFile, kLineNumber, NULL); | 
| 669   TallyABirth(location, kMainThreadName); | 664   TallyABirth(location, kMainThreadName); | 
| 670 | 665 | 
| 671   const base::TimeTicks kTimePosted = base::TimeTicks() + | 666   const TrackedTime kTimePosted = TrackedTime::FromMilliseconds(1); | 
| 672       base::TimeDelta::FromMilliseconds(1); |  | 
| 673   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 667   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 
| 674   // TrackingInfo will call TallyABirth() during construction. | 668   // TrackingInfo will call TallyABirth() during construction. | 
| 675   base::TrackingInfo pending_task(location, kDelayedStartTime); | 669   base::TrackingInfo pending_task(location, kDelayedStartTime); | 
| 676   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 670   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 
| 677 | 671 | 
| 678   SetTestTime(5); | 672   SetTestTime(5); | 
| 679   TaskStopwatch task_stopwatch; | 673   TaskStopwatch task_stopwatch; | 
| 680   task_stopwatch.Start(); | 674   task_stopwatch.Start(); | 
| 681   { | 675   { | 
| 682     SetTestTime(8); | 676     SetTestTime(8); | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 699 TEST_F(TrackedObjectsTest, TaskWith2NestedExclusions) { | 693 TEST_F(TrackedObjectsTest, TaskWith2NestedExclusions) { | 
| 700   if (!ThreadData::InitializeAndSetTrackingStatus( | 694   if (!ThreadData::InitializeAndSetTrackingStatus( | 
| 701           ThreadData::PROFILING_CHILDREN_ACTIVE)) { | 695           ThreadData::PROFILING_CHILDREN_ACTIVE)) { | 
| 702     return; | 696     return; | 
| 703   } | 697   } | 
| 704 | 698 | 
| 705   const char kFunction[] = "TaskWith2NestedExclusions"; | 699   const char kFunction[] = "TaskWith2NestedExclusions"; | 
| 706   Location location(kFunction, kFile, kLineNumber, NULL); | 700   Location location(kFunction, kFile, kLineNumber, NULL); | 
| 707   TallyABirth(location, kMainThreadName); | 701   TallyABirth(location, kMainThreadName); | 
| 708 | 702 | 
| 709   const base::TimeTicks kTimePosted = base::TimeTicks() + | 703   const TrackedTime kTimePosted = TrackedTime::FromMilliseconds(1); | 
| 710       base::TimeDelta::FromMilliseconds(1); |  | 
| 711   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 704   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 
| 712   // TrackingInfo will call TallyABirth() during construction. | 705   // TrackingInfo will call TallyABirth() during construction. | 
| 713   base::TrackingInfo pending_task(location, kDelayedStartTime); | 706   base::TrackingInfo pending_task(location, kDelayedStartTime); | 
| 714   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 707   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 
| 715 | 708 | 
| 716   SetTestTime(5); | 709   SetTestTime(5); | 
| 717   TaskStopwatch task_stopwatch; | 710   TaskStopwatch task_stopwatch; | 
| 718   task_stopwatch.Start(); | 711   task_stopwatch.Start(); | 
| 719   { | 712   { | 
| 720     SetTestTime(8); | 713     SetTestTime(8); | 
| (...skipping 25 matching lines...) Expand all  Loading... | 
| 746     return; | 739     return; | 
| 747   } | 740   } | 
| 748 | 741 | 
| 749   const char kFunction[] = "TaskWithNestedExclusionWithNestedTask"; | 742   const char kFunction[] = "TaskWithNestedExclusionWithNestedTask"; | 
| 750   Location location(kFunction, kFile, kLineNumber, NULL); | 743   Location location(kFunction, kFile, kLineNumber, NULL); | 
| 751 | 744 | 
| 752   const int kSecondFakeLineNumber = 999; | 745   const int kSecondFakeLineNumber = 999; | 
| 753 | 746 | 
| 754   TallyABirth(location, kMainThreadName); | 747   TallyABirth(location, kMainThreadName); | 
| 755 | 748 | 
| 756   const base::TimeTicks kTimePosted = base::TimeTicks() + | 749   const TrackedTime kTimePosted = TrackedTime::FromMilliseconds(1); | 
| 757       base::TimeDelta::FromMilliseconds(1); |  | 
| 758   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 750   const base::TimeTicks kDelayedStartTime = base::TimeTicks(); | 
| 759   // TrackingInfo will call TallyABirth() during construction. | 751   // TrackingInfo will call TallyABirth() during construction. | 
| 760   base::TrackingInfo pending_task(location, kDelayedStartTime); | 752   base::TrackingInfo pending_task(location, kDelayedStartTime); | 
| 761   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 753   pending_task.time_posted = kTimePosted;  // Overwrite implied Now(). | 
| 762 | 754 | 
| 763   SetTestTime(5); | 755   SetTestTime(5); | 
| 764   TaskStopwatch task_stopwatch; | 756   TaskStopwatch task_stopwatch; | 
| 765   task_stopwatch.Start(); | 757   task_stopwatch.Start(); | 
| 766   { | 758   { | 
| 767     SetTestTime(8); | 759     SetTestTime(8); | 
| 768     TaskStopwatch exclusion_stopwatch; | 760     TaskStopwatch exclusion_stopwatch; | 
| 769     exclusion_stopwatch.Start(); | 761     exclusion_stopwatch.Start(); | 
| 770     { | 762     { | 
| 771       Location second_location(kFunction, kFile, kSecondFakeLineNumber, NULL); | 763       Location second_location(kFunction, kFile, kSecondFakeLineNumber, NULL); | 
| 772       base::TrackingInfo nested_task(second_location, kDelayedStartTime); | 764       base::TrackingInfo nested_task(second_location, kDelayedStartTime); | 
| 773        // Overwrite implied Now(). | 765        // Overwrite implied Now(). | 
| 774       nested_task.time_posted = | 766       nested_task.time_posted = TrackedTime::FromMilliseconds(8); | 
| 775           base::TimeTicks() + base::TimeDelta::FromMilliseconds(8); |  | 
| 776       SetTestTime(9); | 767       SetTestTime(9); | 
| 777       TaskStopwatch nested_task_stopwatch; | 768       TaskStopwatch nested_task_stopwatch; | 
| 778       nested_task_stopwatch.Start(); | 769       nested_task_stopwatch.Start(); | 
| 779       SetTestTime(11); | 770       SetTestTime(11); | 
| 780       nested_task_stopwatch.Stop(); | 771       nested_task_stopwatch.Stop(); | 
| 781       ThreadData::TallyRunOnNamedThreadIfTracking( | 772       ThreadData::TallyRunOnNamedThreadIfTracking( | 
| 782           nested_task, nested_task_stopwatch); | 773           nested_task, nested_task_stopwatch); | 
| 783     } | 774     } | 
| 784     SetTestTime(12); | 775     SetTestTime(12); | 
| 785     exclusion_stopwatch.Stop(); | 776     exclusion_stopwatch.Stop(); | 
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 821   EXPECT_EQ(2, process_data.tasks[t1].death_data.run_duration_sample); | 812   EXPECT_EQ(2, process_data.tasks[t1].death_data.run_duration_sample); | 
| 822   EXPECT_EQ(1, process_data.tasks[t1].death_data.queue_duration_sum); | 813   EXPECT_EQ(1, process_data.tasks[t1].death_data.queue_duration_sum); | 
| 823   EXPECT_EQ(1, process_data.tasks[t1].death_data.queue_duration_max); | 814   EXPECT_EQ(1, process_data.tasks[t1].death_data.queue_duration_max); | 
| 824   EXPECT_EQ(1, process_data.tasks[t1].death_data.queue_duration_sample); | 815   EXPECT_EQ(1, process_data.tasks[t1].death_data.queue_duration_sample); | 
| 825   EXPECT_EQ(kMainThreadName, process_data.tasks[t1].death_thread_name); | 816   EXPECT_EQ(kMainThreadName, process_data.tasks[t1].death_thread_name); | 
| 826   EXPECT_EQ(0u, process_data.descendants.size()); | 817   EXPECT_EQ(0u, process_data.descendants.size()); | 
| 827   EXPECT_EQ(base::GetCurrentProcId(), process_data.process_id); | 818   EXPECT_EQ(base::GetCurrentProcId(), process_data.process_id); | 
| 828 } | 819 } | 
| 829 | 820 | 
| 830 }  // namespace tracked_objects | 821 }  // namespace tracked_objects | 
| OLD | NEW | 
|---|