Chromium Code Reviews| 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 5b1b25f1d0ea12f329b6d25f574c6e21438d8bc4..1c93b0b3b39fb09d6a2539d5e3e8adadf6450457 100644 |
| --- a/components/tracing/common/process_metrics_memory_dump_provider_unittest.cc |
| +++ b/components/tracing/common/process_metrics_memory_dump_provider_unittest.cc |
| @@ -269,4 +269,30 @@ TEST(ProcessMetricsMemoryDumpProviderTest, TestPollFastMemoryTotal) { |
| #endif |
| } |
| +#if defined(OS_MACOSX) |
| +TEST(ProcessMetricsMemoryDumpProviderTest, TestMachOReading) { |
| + 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()); |
| + |
| + bool found_components_unittests = false; |
| + for (const VMRegion& region : dump.process_mmaps()->vm_regions()) { |
| + EXPECT_NE(0u, region.start_address); |
| + EXPECT_NE(0u, region.size_in_bytes); |
| + |
| + uint32_t required_protection_flags = |
| + VMRegion::kProtectionFlagsRead | VMRegion::kProtectionFlagsExec; |
| + EXPECT_EQ(required_protection_flags, |
| + region.protection_flags & required_protection_flags); |
| + EXPECT_LT(region.size_in_bytes, 1ull << 32); |
| + if (region.mapped_file.find("components_unittests") != std::string::npos) |
|
Mark Mentovai
2017/01/03 20:07:46
Might be less fragile if you used basename(_NSGetE
|
| + found_components_unittests = true; |
| + } |
| + EXPECT_TRUE(found_components_unittests); |
| +} |
| +#endif // defined(OS_MACOSX) |
| + |
| } // namespace tracing |