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 #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 Loading... |
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 Loading... |
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 |
OLD | NEW |