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 d05c3a736217d93e93bf179b66b25db8389f6261..490815509e1a292e1cba5a52f4aadcc1812236a4 100644 |
--- a/components/tracing/common/process_metrics_memory_dump_provider_unittest.cc |
+++ b/components/tracing/common/process_metrics_memory_dump_provider_unittest.cc |
@@ -22,6 +22,10 @@ |
#include <mach-o/dyld.h> |
#endif |
+#if defined(OS_WIN) |
+#include <base/strings/sys_string_conversions.h> |
+#endif |
+ |
namespace tracing { |
#if defined(OS_LINUX) || defined(OS_ANDROID) |
@@ -274,6 +278,31 @@ TEST(ProcessMetricsMemoryDumpProviderTest, TestPollFastMemoryTotal) { |
#endif |
} |
+TEST(ProcessMetricsMemoryDumpProviderTest, TestWinModuleReading) { |
+ 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()); |
+ |
+ TCHAR module_name[MAX_PATH]; |
Wez
2017/02/23 04:15:11
wchar_t
erikchen
2017/02/23 21:00:14
Done.
|
+ DWORD result = GetModuleFileName(nullptr, module_name, MAX_PATH); |
+ ASSERT_TRUE(result); |
+ std::string executable_name = base::SysWideToNativeMB(module_name); |
+ |
+ bool found_components_unittests = false; |
Wez
2017/02/23 04:15:11
For extra credit:
Use GetModuleHandleEx(GET_MODUL
erikchen
2017/02/23 21:00:14
Done.
|
+ for (const VMRegion& region : dump.process_mmaps()->vm_regions()) { |
+ EXPECT_NE(0u, region.start_address); |
+ EXPECT_NE(0u, region.size_in_bytes); |
+ |
+ if (region.mapped_file.find(executable_name) != std::string::npos) |
+ found_components_unittests = true; |
+ } |
+ EXPECT_TRUE(found_components_unittests); |
+} |
+ |
#if defined(OS_MACOSX) |
TEST(ProcessMetricsMemoryDumpProviderTest, TestMachOReading) { |
using VMRegion = base::trace_event::ProcessMemoryMaps::VMRegion; |