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

Side by Side Diff: base/profiler/stack_sampling_profiler_unittest.cc

Issue 2530043002: Set process phases in the StackSamplingProfiler. (Closed)
Patch Set: improved comment Created 3 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
« no previous file with comments | « base/profiler/stack_sampling_profiler.cc ('k') | chrome/browser/chrome_browser_main.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <cstdlib> 8 #include <cstdlib>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 std::vector<CallStackProfile> profiles; 594 std::vector<CallStackProfile> profiles;
595 CaptureProfiles(params, AVeryLongTimeDelta(), &profiles); 595 CaptureProfiles(params, AVeryLongTimeDelta(), &profiles);
596 596
597 // Check that the profile and samples sizes are correct, and the module 597 // Check that the profile and samples sizes are correct, and the module
598 // indices are in range. 598 // indices are in range.
599 ASSERT_EQ(1u, profiles.size()); 599 ASSERT_EQ(1u, profiles.size());
600 const CallStackProfile& profile = profiles[0]; 600 const CallStackProfile& profile = profiles[0];
601 ASSERT_EQ(1u, profile.samples.size()); 601 ASSERT_EQ(1u, profile.samples.size());
602 EXPECT_EQ(params.sampling_interval, profile.sampling_period); 602 EXPECT_EQ(params.sampling_interval, profile.sampling_period);
603 const Sample& sample = profile.samples[0]; 603 const Sample& sample = profile.samples[0];
604 EXPECT_EQ(0u, sample.process_phases); 604 EXPECT_EQ(0u, sample.process_milestones);
605 for (const auto& frame : sample.frames) { 605 for (const auto& frame : sample.frames) {
606 ASSERT_GE(frame.module_index, 0u); 606 ASSERT_GE(frame.module_index, 0u);
607 ASSERT_LT(frame.module_index, profile.modules.size()); 607 ASSERT_LT(frame.module_index, profile.modules.size());
608 } 608 }
609 609
610 // Check that the stack contains a frame for 610 // Check that the stack contains a frame for
611 // TargetThread::SignalAndWaitUntilSignaled() and that the frame has this 611 // TargetThread::SignalAndWaitUntilSignaled() and that the frame has this
612 // executable's module. 612 // executable's module.
613 Frames::const_iterator loc = FindFirstFrameWithinFunction( 613 Frames::const_iterator loc = FindFirstFrameWithinFunction(
614 sample, &TargetThread::SignalAndWaitUntilSignaled); 614 sample, &TargetThread::SignalAndWaitUntilSignaled);
(...skipping 15 matching lines...) Expand all
630 #define MAYBE_Annotations DISABLED_Annotations 630 #define MAYBE_Annotations DISABLED_Annotations
631 #endif 631 #endif
632 TEST(StackSamplingProfilerTest, MAYBE_Annotations) { 632 TEST(StackSamplingProfilerTest, MAYBE_Annotations) {
633 StackSamplingProfiler::ResetAnnotationsForTesting(); 633 StackSamplingProfiler::ResetAnnotationsForTesting();
634 634
635 SamplingParams params; 635 SamplingParams params;
636 params.sampling_interval = TimeDelta::FromMilliseconds(0); 636 params.sampling_interval = TimeDelta::FromMilliseconds(0);
637 params.samples_per_burst = 1; 637 params.samples_per_burst = 1;
638 638
639 // Check that a run picks up annotations. 639 // Check that a run picks up annotations.
640 StackSamplingProfiler::SetProcessPhase(1); 640 StackSamplingProfiler::SetProcessMilestone(1);
641 std::vector<CallStackProfile> profiles1; 641 std::vector<CallStackProfile> profiles1;
642 CaptureProfiles(params, AVeryLongTimeDelta(), &profiles1); 642 CaptureProfiles(params, AVeryLongTimeDelta(), &profiles1);
643 ASSERT_EQ(1u, profiles1.size()); 643 ASSERT_EQ(1u, profiles1.size());
644 const CallStackProfile& profile1 = profiles1[0]; 644 const CallStackProfile& profile1 = profiles1[0];
645 ASSERT_EQ(1u, profile1.samples.size()); 645 ASSERT_EQ(1u, profile1.samples.size());
646 const Sample& sample1 = profile1.samples[0]; 646 const Sample& sample1 = profile1.samples[0];
647 EXPECT_EQ(1u << 1, sample1.process_phases); 647 EXPECT_EQ(1u << 1, sample1.process_milestones);
648 648
649 // Run it a second time but with changed annotations. These annotations 649 // Run it a second time but with changed annotations. These annotations
650 // should appear in the first acquired sample. 650 // should appear in the first acquired sample.
651 StackSamplingProfiler::SetProcessPhase(2); 651 StackSamplingProfiler::SetProcessMilestone(2);
652 std::vector<CallStackProfile> profiles2; 652 std::vector<CallStackProfile> profiles2;
653 CaptureProfiles(params, AVeryLongTimeDelta(), &profiles2); 653 CaptureProfiles(params, AVeryLongTimeDelta(), &profiles2);
654 ASSERT_EQ(1u, profiles2.size()); 654 ASSERT_EQ(1u, profiles2.size());
655 const CallStackProfile& profile2 = profiles2[0]; 655 const CallStackProfile& profile2 = profiles2[0];
656 ASSERT_EQ(1u, profile2.samples.size()); 656 ASSERT_EQ(1u, profile2.samples.size());
657 const Sample& sample2 = profile2.samples[0]; 657 const Sample& sample2 = profile2.samples[0];
658 EXPECT_EQ(sample1.process_phases | (1u << 2), sample2.process_phases); 658 EXPECT_EQ(sample1.process_milestones | (1u << 2), sample2.process_milestones);
659 } 659 }
660 660
661 // Checks that the profiler handles stacks containing dynamically-allocated 661 // Checks that the profiler handles stacks containing dynamically-allocated
662 // stack memory. 662 // stack memory.
663 #if defined(STACK_SAMPLING_PROFILER_SUPPORTED) 663 #if defined(STACK_SAMPLING_PROFILER_SUPPORTED)
664 #define MAYBE_Alloca Alloca 664 #define MAYBE_Alloca Alloca
665 #else 665 #else
666 #define MAYBE_Alloca DISABLED_Alloca 666 #define MAYBE_Alloca DISABLED_Alloca
667 #endif 667 #endif
668 TEST(StackSamplingProfilerTest, MAYBE_Alloca) { 668 TEST(StackSamplingProfilerTest, MAYBE_Alloca) {
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
1009 #if defined(STACK_SAMPLING_PROFILER_SUPPORTED) 1009 #if defined(STACK_SAMPLING_PROFILER_SUPPORTED)
1010 #define MAYBE_UnloadedLibrary UnloadedLibrary 1010 #define MAYBE_UnloadedLibrary UnloadedLibrary
1011 #else 1011 #else
1012 #define MAYBE_UnloadedLibrary DISABLED_UnloadedLibrary 1012 #define MAYBE_UnloadedLibrary DISABLED_UnloadedLibrary
1013 #endif 1013 #endif
1014 TEST(StackSamplingProfilerTest, MAYBE_UnloadedLibrary) { 1014 TEST(StackSamplingProfilerTest, MAYBE_UnloadedLibrary) {
1015 TestLibraryUnload(true); 1015 TestLibraryUnload(true);
1016 } 1016 }
1017 1017
1018 } // namespace base 1018 } // namespace base
OLDNEW
« no previous file with comments | « base/profiler/stack_sampling_profiler.cc ('k') | chrome/browser/chrome_browser_main.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698