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

Side by Side Diff: util/win/process_info_test.cc

Issue 1369833002: win: Gather memory information (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@save-peb-stuff
Patch Set: . Created 5 years, 2 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 unified diff | Download patch
« util/win/process_info.cc ('K') | « util/win/process_info.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Crashpad Authors. All rights reserved. 1 // Copyright 2015 The Crashpad Authors. All rights reserved.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 reinterpret_cast<uintptr_t>(GetModuleHandle(L"ntdll.dll"))); 94 reinterpret_cast<uintptr_t>(GetModuleHandle(L"ntdll.dll")));
95 95
96 EXPECT_GT(modules[0].size, 0); 96 EXPECT_GT(modules[0].size, 0);
97 EXPECT_GT(modules[1].size, 0); 97 EXPECT_GT(modules[1].size, 0);
98 98
99 EXPECT_EQ(modules[0].timestamp, 99 EXPECT_EQ(modules[0].timestamp,
100 GetTimestampForModule(GetModuleHandle(nullptr))); 100 GetTimestampForModule(GetModuleHandle(nullptr)));
101 // System modules are forced to particular stamps and the file header values 101 // System modules are forced to particular stamps and the file header values
102 // don't match the on-disk times. Just make sure we got some data here. 102 // don't match the on-disk times. Just make sure we got some data here.
103 EXPECT_GT(modules[1].timestamp, 0); 103 EXPECT_GT(modules[1].timestamp, 0);
104
105 // Find something we know is a code address and confirm expected memory
106 // information settings.
107 const std::vector<ProcessInfo::MemoryInfo>& memory_info =
108 process_info.MemoryInformation();
109 WinVMAddress code_address = reinterpret_cast<WinVMAddress>(_ReturnAddress());
110 bool found_region = false;
111 for (const auto& mi : memory_info) {
112 if (mi.base_address <= code_address &&
113 mi.base_address + mi.region_size > code_address) {
114 EXPECT_EQ(MEM_COMMIT, mi.state);
115 EXPECT_EQ(PAGE_EXECUTE_READ, mi.protect);
116 EXPECT_EQ(MEM_IMAGE, mi.type);
117 found_region = true;
118 break;
Mark Mentovai 2015/09/26 02:02:14 Don’t break. Walk the whole list, and before you s
scottmg 2015/09/26 03:12:36 Done.
119 }
120 }
121 EXPECT_TRUE(found_region);
104 } 122 }
105 123
106 void TestOtherProcess(const base::string16& directory_modification) { 124 void TestOtherProcess(const base::string16& directory_modification) {
107 ProcessInfo process_info; 125 ProcessInfo process_info;
108 126
109 UUID started_uuid(UUID::InitializeWithNewTag{}); 127 UUID started_uuid(UUID::InitializeWithNewTag{});
110 UUID done_uuid(UUID::InitializeWithNewTag{}); 128 UUID done_uuid(UUID::InitializeWithNewTag{});
111 129
112 ScopedKernelHANDLE started( 130 ScopedKernelHANDLE started(
113 CreateEvent(nullptr, true, false, started_uuid.ToString16().c_str())); 131 CreateEvent(nullptr, true, false, started_uuid.ToString16().c_str()));
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 TestOtherProcess(FILE_PATH_LITERAL("..\\..\\out\\Debug")); 189 TestOtherProcess(FILE_PATH_LITERAL("..\\..\\out\\Debug"));
172 #else 190 #else
173 TestOtherProcess(FILE_PATH_LITERAL("..\\..\\out\\Release")); 191 TestOtherProcess(FILE_PATH_LITERAL("..\\..\\out\\Release"));
174 #endif 192 #endif
175 } 193 }
176 #endif // ARCH_CPU_64_BITS 194 #endif // ARCH_CPU_64_BITS
177 195
178 } // namespace 196 } // namespace
179 } // namespace test 197 } // namespace test
180 } // namespace crashpad 198 } // namespace crashpad
OLDNEW
« util/win/process_info.cc ('K') | « util/win/process_info.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698