1 // Copyright 2015 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef BASE_TRACE_EVENT_TRACE_CONFIG_MEMORY_TEST_UTIL_H_ 6 #define BASE_TRACE_EVENT_TRACE_CONFIG_MEMORY_TEST_UTIL_H_ 7 8 #include "base/strings/stringprintf.h" 9 #include "base/trace_event/memory_dump_manager.h" 10 11 namespace base { 12 namespace trace_event { 13 14 class TraceConfigMemoryTestUtil { 15 public: GetTraceConfig_LegacyPeriodicTriggers(int light_period,int heavy_period)16 static std::string GetTraceConfig_LegacyPeriodicTriggers(int light_period, 17 int heavy_period) { 18 return StringPrintf( 19 "{" 20 "\"enable_argument_filter\":false," 21 "\"enable_package_name_filter\":false," 22 "\"enable_systrace\":false," 23 "\"excluded_categories\":[" 24 "\"*\"" 25 "]," 26 "\"included_categories\":[" 27 "\"%s\"" 28 "]," 29 "\"memory_dump_config\":{" 30 "\"allowed_dump_modes\":[\"background\",\"light\",\"detailed\"]," 31 "\"heap_profiler_options\":{" 32 "\"breakdown_threshold_bytes\":2048" 33 "}," 34 "\"triggers\":[" 35 "{" 36 "\"mode\":\"light\"," 37 "\"periodic_interval_ms\":%d" 38 "}," 39 "{" 40 "\"mode\":\"detailed\"," 41 "\"periodic_interval_ms\":%d" 42 "}" 43 "]" 44 "}," 45 "\"record_mode\":\"record-until-full\"" 46 "}", 47 MemoryDumpManager::kTraceCategory, light_period, heavy_period); 48 } 49 GetTraceConfig_PeriodicTriggers(int light_period,int heavy_period)50 static std::string GetTraceConfig_PeriodicTriggers(int light_period, 51 int heavy_period) { 52 return StringPrintf( 53 "{" 54 "\"enable_argument_filter\":false," 55 "\"enable_package_name_filter\":false," 56 "\"enable_systrace\":false," 57 "\"excluded_categories\":[" 58 "\"*\"" 59 "]," 60 "\"included_categories\":[" 61 "\"%s\"" 62 "]," 63 "\"memory_dump_config\":{" 64 "\"allowed_dump_modes\":[\"background\",\"light\",\"detailed\"]," 65 "\"heap_profiler_options\":{" 66 "\"breakdown_threshold_bytes\":2048" 67 "}," 68 "\"triggers\":[" 69 "{" 70 "\"min_time_between_dumps_ms\":%d," 71 "\"mode\":\"light\"," 72 "\"type\":\"periodic_interval\"" 73 "}," 74 "{" 75 "\"min_time_between_dumps_ms\":%d," 76 "\"mode\":\"detailed\"," 77 "\"type\":\"periodic_interval\"" 78 "}" 79 "]" 80 "}," 81 "\"record_mode\":\"record-until-full\"" 82 "}", 83 MemoryDumpManager::kTraceCategory, light_period, heavy_period); 84 } 85 GetTraceConfig_EmptyTriggers()86 static std::string GetTraceConfig_EmptyTriggers() { 87 return StringPrintf( 88 "{" 89 "\"enable_argument_filter\":false," 90 "\"enable_package_name_filter\":false," 91 "\"enable_systrace\":false," 92 "\"excluded_categories\":[" 93 "\"*\"" 94 "]," 95 "\"included_categories\":[" 96 "\"%s\"" 97 "]," 98 "\"memory_dump_config\":{" 99 "\"allowed_dump_modes\":[\"background\",\"light\",\"detailed\"]," 100 "\"triggers\":[" 101 "]" 102 "}," 103 "\"record_mode\":\"record-until-full\"" 104 "}", 105 MemoryDumpManager::kTraceCategory); 106 } 107 GetTraceConfig_NoTriggers()108 static std::string GetTraceConfig_NoTriggers() { 109 return StringPrintf( 110 "{" 111 "\"enable_argument_filter\":false," 112 "\"enable_systrace\":false," 113 "\"excluded_categories\":[" 114 "\"*\"" 115 "]," 116 "\"included_categories\":[" 117 "\"%s\"" 118 "]," 119 "\"record_mode\":\"record-until-full\"" 120 "}", 121 MemoryDumpManager::kTraceCategory); 122 } 123 GetTraceConfig_BackgroundTrigger(int period_ms)124 static std::string GetTraceConfig_BackgroundTrigger(int period_ms) { 125 return StringPrintf( 126 "{" 127 "\"enable_argument_filter\":false," 128 "\"enable_package_name_filter\":false," 129 "\"enable_systrace\":false," 130 "\"excluded_categories\":[" 131 "\"*\"" 132 "]," 133 "\"included_categories\":[" 134 "\"%s\"" 135 "]," 136 "\"memory_dump_config\":{" 137 "\"allowed_dump_modes\":[\"background\"]," 138 "\"triggers\":[" 139 "{" 140 "\"min_time_between_dumps_ms\":%d," 141 "\"mode\":\"background\"," 142 "\"type\":\"periodic_interval\"" 143 "}" 144 "]" 145 "}," 146 "\"record_mode\":\"record-until-full\"" 147 "}", 148 MemoryDumpManager::kTraceCategory, period_ms); 149 } 150 }; 151 152 } // namespace trace_event 153 } // namespace base 154 155 #endif // BASE_TRACE_EVENT_TRACE_CONFIG_MEMORY_TEST_UTIL_H_ 156