trace_config_memory_test_util.h 4.4 KB

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