• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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