Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(513)

Unified Diff: components/tracing/common/process_metrics_memory_dump_provider_unittest.cc

Issue 2696923002: Update logic for emitting region information from dyld. (Closed)
Patch Set: Fix comparison operator. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/tracing/common/process_metrics_memory_dump_provider.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/tracing/common/process_metrics_memory_dump_provider_unittest.cc
diff --git a/components/tracing/common/process_metrics_memory_dump_provider_unittest.cc b/components/tracing/common/process_metrics_memory_dump_provider_unittest.cc
index 4c9ba7c9ac0fa86c5d2fb6d206d5f03f8f736530..d05c3a736217d93e93bf179b66b25db8389f6261 100644
--- a/components/tracing/common/process_metrics_memory_dump_provider_unittest.cc
+++ b/components/tracing/common/process_metrics_memory_dump_provider_unittest.cc
@@ -313,6 +313,30 @@ TEST(ProcessMetricsMemoryDumpProviderTest, TestMachOReading) {
EXPECT_GT(components_unittests_resident_pages, 0u);
EXPECT_TRUE(found_appkit);
}
+
+TEST(ProcessMetricsMemoryDumpProviderTest, NoDuplicateRegions) {
+ using VMRegion = base::trace_event::ProcessMemoryMaps::VMRegion;
+ ProcessMetricsMemoryDumpProvider mdp(base::kNullProcessId);
+ base::trace_event::MemoryDumpArgs args;
+ base::trace_event::ProcessMemoryDump dump(nullptr, args);
+ ASSERT_TRUE(mdp.DumpProcessMemoryMaps(args, &dump));
+ ASSERT_TRUE(dump.has_process_mmaps());
+
+ std::vector<VMRegion> regions;
+ regions.reserve(dump.process_mmaps()->vm_regions().size());
+ for (const VMRegion& region : dump.process_mmaps()->vm_regions())
+ regions.push_back(region);
+ std::sort(regions.begin(), regions.end(),
+ [](const VMRegion& a, const VMRegion& b) -> bool {
+ return a.start_address < b.start_address;
+ });
+ uint64_t last_address = 0;
+ for (const VMRegion& region : regions) {
+ EXPECT_GE(region.start_address, last_address);
+ last_address = region.start_address + region.size_in_bytes;
+ }
+}
+
#endif // defined(OS_MACOSX)
} // namespace tracing
« no previous file with comments | « components/tracing/common/process_metrics_memory_dump_provider.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698