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

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

Issue 18587004: Add a sampling tracing to RenderWidget::DoDeferredUpdate (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 5 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') | content/renderer/render_widget.cc » ('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 (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 <cstdlib> 7 #include <cstdlib>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 1770 matching lines...) Expand 10 before | Expand all | Expand 10 after
1781 TraceLog::TraceOptionsFromString("record-until-full")); 1781 TraceLog::TraceOptionsFromString("record-until-full"));
1782 EXPECT_EQ(TraceLog::RECORD_CONTINUOUSLY, 1782 EXPECT_EQ(TraceLog::RECORD_CONTINUOUSLY,
1783 TraceLog::TraceOptionsFromString("record-continuously")); 1783 TraceLog::TraceOptionsFromString("record-continuously"));
1784 EXPECT_EQ(TraceLog::RECORD_UNTIL_FULL | TraceLog::ENABLE_SAMPLING, 1784 EXPECT_EQ(TraceLog::RECORD_UNTIL_FULL | TraceLog::ENABLE_SAMPLING,
1785 TraceLog::TraceOptionsFromString("enable-sampling")); 1785 TraceLog::TraceOptionsFromString("enable-sampling"));
1786 EXPECT_EQ(TraceLog::RECORD_CONTINUOUSLY | TraceLog::ENABLE_SAMPLING, 1786 EXPECT_EQ(TraceLog::RECORD_CONTINUOUSLY | TraceLog::ENABLE_SAMPLING,
1787 TraceLog::TraceOptionsFromString( 1787 TraceLog::TraceOptionsFromString(
1788 "record-continuously,enable-sampling")); 1788 "record-continuously,enable-sampling"));
1789 } 1789 }
1790 1790
1791 // Not supported in split dll build. http://crbug.com/237249 1791 // Not supported in split dll build. http://crbug.com/256965
1792 #if !defined(CHROME_SPLIT_DLL) 1792 #if !defined(CHROME_SPLIT_DLL)
1793 TEST_F(TraceEventTestFixture, TraceSampling) { 1793 TEST_F(TraceEventTestFixture, TraceSampling) {
1794 ManualTestSetUp(); 1794 ManualTestSetUp();
1795 1795
1796 event_watch_notification_ = 0; 1796 event_watch_notification_ = 0;
1797 TraceLog::GetInstance()->SetEnabled( 1797 TraceLog::GetInstance()->SetEnabled(
1798 CategoryFilter("*"), 1798 CategoryFilter("*"),
1799 TraceLog::Options(TraceLog::RECORD_UNTIL_FULL | 1799 TraceLog::Options(TraceLog::RECORD_UNTIL_FULL |
1800 TraceLog::ENABLE_SAMPLING)); 1800 TraceLog::ENABLE_SAMPLING));
1801 1801
1802 WaitableEvent* sampled = new WaitableEvent(false, false); 1802 WaitableEvent* sampled = new WaitableEvent(false, false);
1803 TraceLog::GetInstance()->InstallWaitableEventForSamplingTesting(sampled); 1803 TraceLog::GetInstance()->InstallWaitableEventForSamplingTesting(sampled);
1804 1804
1805 TRACE_EVENT_SAMPLE_STATE(1, "cc", "Stuff"); 1805 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Stuff");
1806 sampled->Wait(); 1806 sampled->Wait();
1807 TRACE_EVENT_SAMPLE_STATE(1, "cc", "Things"); 1807 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Things");
1808 sampled->Wait(); 1808 sampled->Wait();
1809 1809
1810 EndTraceAndFlush(); 1810 EndTraceAndFlush();
1811 1811
1812 // Make sure we hit at least once. 1812 // Make sure we hit at least once.
1813 EXPECT_TRUE(FindNamePhase("Stuff", "P")); 1813 EXPECT_TRUE(FindNamePhase("Stuff", "P"));
1814 EXPECT_TRUE(FindNamePhase("Things", "P")); 1814 EXPECT_TRUE(FindNamePhase("Things", "P"));
1815 } 1815 }
1816
1817 TEST_F(TraceEventTestFixture, TraceSamplingScope) {
1818 ManualTestSetUp();
1819
1820 event_watch_notification_ = 0;
1821 TraceLog::GetInstance()->SetEnabled(
1822 CategoryFilter("*"),
1823 TraceLog::Options(TraceLog::RECORD_UNTIL_FULL |
1824 TraceLog::ENABLE_SAMPLING));
1825
1826 WaitableEvent* sampled = new WaitableEvent(false, false);
1827 TraceLog::GetInstance()->InstallWaitableEventForSamplingTesting(sampled);
1828
1829 TRACE_EVENT_SCOPED_SAMPLING_STATE("AAA", "name");
1830 sampled->Wait();
1831 {
1832 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "AAA");
1833 TRACE_EVENT_SCOPED_SAMPLING_STATE("BBB", "name");
1834 sampled->Wait();
1835 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "BBB");
1836 }
1837 sampled->Wait();
1838 {
1839 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "AAA");
1840 TRACE_EVENT_SCOPED_SAMPLING_STATE("CCC", "name");
1841 sampled->Wait();
1842 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "CCC");
1843 }
1844 sampled->Wait();
1845 {
1846 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "AAA");
1847 TRACE_EVENT_SET_SAMPLING_STATE("DDD", "name");
1848 sampled->Wait();
1849 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "DDD");
1850 }
1851 sampled->Wait();
1852 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "DDD");
1853
1854 EndTraceAndFlush();
1855 }
1816 #endif // !CHROME_SPLIT_DLL 1856 #endif // !CHROME_SPLIT_DLL
1817 1857
1818 class MyData : public base::debug::ConvertableToTraceFormat { 1858 class MyData : public base::debug::ConvertableToTraceFormat {
1819 public: 1859 public:
1820 MyData() {} 1860 MyData() {}
1821 virtual ~MyData() {} 1861 virtual ~MyData() {}
1822 1862
1823 virtual void AppendAsTraceFormat(std::string* out) const OVERRIDE { 1863 virtual void AppendAsTraceFormat(std::string* out) const OVERRIDE {
1824 out->append("{\"foo\":1}"); 1864 out->append("{\"foo\":1}");
1825 } 1865 }
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
2097 EXPECT_TRUE(CategoryFilter::IsEmptyOrContainsLeadingOrTrailingWhitespace( 2137 EXPECT_TRUE(CategoryFilter::IsEmptyOrContainsLeadingOrTrailingWhitespace(
2098 " bad_category ")); 2138 " bad_category "));
2099 EXPECT_TRUE(CategoryFilter::IsEmptyOrContainsLeadingOrTrailingWhitespace( 2139 EXPECT_TRUE(CategoryFilter::IsEmptyOrContainsLeadingOrTrailingWhitespace(
2100 "")); 2140 ""));
2101 EXPECT_FALSE(CategoryFilter::IsEmptyOrContainsLeadingOrTrailingWhitespace( 2141 EXPECT_FALSE(CategoryFilter::IsEmptyOrContainsLeadingOrTrailingWhitespace(
2102 "good_category")); 2142 "good_category"));
2103 } 2143 }
2104 2144
2105 } // namespace debug 2145 } // namespace debug
2106 } // namespace base 2146 } // namespace base
OLDNEW
« no previous file with comments | « base/debug/trace_event_impl.cc ('k') | content/renderer/render_widget.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698