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