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 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_systrace\":false," 22 "\"excluded_categories\":[" 23 "\"*\"" 24 "]," 25 "\"included_categories\":[" 26 "\"%s\"" 27 "]," 28 "\"memory_dump_config\":{" 29 "\"allowed_dump_modes\":[\"background\",\"light\",\"detailed\"]," 30 "\"heap_profiler_options\":{" 31 "\"breakdown_threshold_bytes\":2048" 32 "}," 33 "\"triggers\":[" 34 "{" 35 "\"mode\":\"light\"," 36 "\"periodic_interval_ms\":%d" 37 "}," 38 "{" 39 "\"mode\":\"detailed\"," 40 "\"periodic_interval_ms\":%d" 41 "}" 42 "]" 43 "}," 44 "\"record_mode\":\"record-until-full\"" 45 "}", 46 MemoryDumpManager::kTraceCategory, light_period, heavy_period); 47 } 48 GetTraceConfig_PeriodicTriggers(int light_period,int heavy_period)49 static std::string GetTraceConfig_PeriodicTriggers(int light_period, 50 int heavy_period) { 51 return StringPrintf( 52 "{" 53 "\"enable_argument_filter\":false," 54 "\"enable_systrace\":false," 55 "\"excluded_categories\":[" 56 "\"*\"" 57 "]," 58 "\"included_categories\":[" 59 "\"%s\"" 60 "]," 61 "\"memory_dump_config\":{" 62 "\"allowed_dump_modes\":[\"background\",\"light\",\"detailed\"]," 63 "\"heap_profiler_options\":{" 64 "\"breakdown_threshold_bytes\":2048" 65 "}," 66 "\"triggers\":[" 67 "{" 68 "\"min_time_between_dumps_ms\":%d," 69 "\"mode\":\"light\"," 70 "\"type\":\"periodic_interval\"" 71 "}," 72 "{" 73 "\"min_time_between_dumps_ms\":%d," 74 "\"mode\":\"detailed\"," 75 "\"type\":\"periodic_interval\"" 76 "}" 77 "]" 78 "}," 79 "\"record_mode\":\"record-until-full\"" 80 "}", 81 MemoryDumpManager::kTraceCategory, light_period, heavy_period); 82 } 83 GetTraceConfig_EmptyTriggers()84 static std::string GetTraceConfig_EmptyTriggers() { 85 return StringPrintf( 86 "{" 87 "\"enable_argument_filter\":false," 88 "\"enable_systrace\":false," 89 "\"excluded_categories\":[" 90 "\"*\"" 91 "]," 92 "\"included_categories\":[" 93 "\"%s\"" 94 "]," 95 "\"memory_dump_config\":{" 96 "\"allowed_dump_modes\":[\"background\",\"light\",\"detailed\"]," 97 "\"triggers\":[" 98 "]" 99 "}," 100 "\"record_mode\":\"record-until-full\"" 101 "}", 102 MemoryDumpManager::kTraceCategory); 103 } 104 GetTraceConfig_NoTriggers()105 static std::string GetTraceConfig_NoTriggers() { 106 return StringPrintf( 107 "{" 108 "\"enable_argument_filter\":false," 109 "\"enable_systrace\":false," 110 "\"excluded_categories\":[" 111 "\"*\"" 112 "]," 113 "\"included_categories\":[" 114 "\"%s\"" 115 "]," 116 "\"record_mode\":\"record-until-full\"" 117 "}", 118 MemoryDumpManager::kTraceCategory); 119 } 120 GetTraceConfig_BackgroundTrigger(int period_ms)121 static std::string GetTraceConfig_BackgroundTrigger(int period_ms) { 122 return StringPrintf( 123 "{" 124 "\"enable_argument_filter\":false," 125 "\"enable_systrace\":false," 126 "\"excluded_categories\":[" 127 "\"*\"" 128 "]," 129 "\"included_categories\":[" 130 "\"%s\"" 131 "]," 132 "\"memory_dump_config\":{" 133 "\"allowed_dump_modes\":[\"background\"]," 134 "\"triggers\":[" 135 "{" 136 "\"min_time_between_dumps_ms\":%d," 137 "\"mode\":\"background\"," 138 "\"type\":\"periodic_interval\"" 139 "}" 140 "]" 141 "}," 142 "\"record_mode\":\"record-until-full\"" 143 "}", 144 MemoryDumpManager::kTraceCategory, period_ms); 145 } 146 }; 147 148 } // namespace trace_event 149 } // namespace base 150 151 #endif // BASE_TRACE_EVENT_TRACE_CONFIG_MEMORY_TEST_UTIL_H_ 152