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

Side by Side Diff: sandbox/win/src/interception_unittest.cc

Issue 1507413003: clang/win: Let some chromium_code targets build with -Wextra. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: content_browsertests Created 5 years 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
« no previous file with comments | « sandbox/win/src/handle_closer_test.cc ('k') | sandbox/win/src/ipc_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file contains unit tests for InterceptionManager. 5 // This file contains unit tests for InterceptionManager.
6 // The tests require private information so the whole interception.cc file is 6 // The tests require private information so the whole interception.cc file is
7 // included from this file. 7 // included from this file.
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <set> 10 #include <set>
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 ASSERT_LT(val, kAllocGranularity); 111 ASSERT_LT(val, kAllocGranularity);
112 if (prev_val) 112 if (prev_val)
113 ASSERT_EQ(val - prev_val, kAlignment); 113 ASSERT_EQ(val - prev_val, kAlignment);
114 if (val) 114 if (val)
115 min_nonzero_val = std::min(val, min_nonzero_val); 115 min_nonzero_val = std::min(val, min_nonzero_val);
116 min_val = std::min(val, min_val); 116 min_val = std::min(val, min_val);
117 prev_val = val; 117 prev_val = val;
118 max_val = std::max(val, max_val); 118 max_val = std::max(val, max_val);
119 } 119 }
120 ASSERT_EQ(max_val, kAllocGranularity - kAlignment); 120 ASSERT_EQ(max_val, kAllocGranularity - kAlignment);
121 ASSERT_EQ(min_val, 0); 121 ASSERT_EQ(0u, min_val);
122 ASSERT_EQ(min_nonzero_val, kAlignment); 122 ASSERT_EQ(min_nonzero_val, kAlignment);
123 } 123 }
124 124
125 TEST(InterceptionManagerTest, BufferLayout1) { 125 TEST(InterceptionManagerTest, BufferLayout1) {
126 wchar_t exe_name[MAX_PATH]; 126 wchar_t exe_name[MAX_PATH];
127 ASSERT_NE(0u, GetModuleFileName(NULL, exe_name, MAX_PATH - 1)); 127 ASSERT_NE(0u, GetModuleFileName(NULL, exe_name, MAX_PATH - 1));
128 128
129 TargetProcess *target = MakeTestTargetProcess(::GetCurrentProcess(), 129 TargetProcess *target = MakeTestTargetProcess(::GetCurrentProcess(),
130 ::GetModuleHandle(exe_name)); 130 ::GetModuleHandle(exe_name));
131 131
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 INTERCEPTION_EAT, function, OPEN_KEY_ID); 172 INTERCEPTION_EAT, function, OPEN_KEY_ID);
173 interceptions.AddToPatchedFunctions(L"b.dll", 173 interceptions.AddToPatchedFunctions(L"b.dll",
174 "TheIncredibleCallToSaveTheWorld", 174 "TheIncredibleCallToSaveTheWorld",
175 INTERCEPTION_EAT, function, OPEN_KEY_ID); 175 INTERCEPTION_EAT, function, OPEN_KEY_ID);
176 interceptions.AddToPatchedFunctions(L"a.dll", "BIsLame", 176 interceptions.AddToPatchedFunctions(L"a.dll", "BIsLame",
177 INTERCEPTION_EAT, function, OPEN_KEY_ID); 177 INTERCEPTION_EAT, function, OPEN_KEY_ID);
178 interceptions.AddToPatchedFunctions(L"a.dll", "ARules", 178 interceptions.AddToPatchedFunctions(L"a.dll", "ARules",
179 INTERCEPTION_EAT, function, OPEN_KEY_ID); 179 INTERCEPTION_EAT, function, OPEN_KEY_ID);
180 180
181 // Verify that all interceptions were added 181 // Verify that all interceptions were added
182 ASSERT_EQ(18, interceptions.interceptions_.size()); 182 ASSERT_EQ(18u, interceptions.interceptions_.size());
183 183
184 size_t buffer_size = interceptions.GetBufferSize(); 184 size_t buffer_size = interceptions.GetBufferSize();
185 scoped_ptr<BYTE[]> local_buffer(new BYTE[buffer_size]); 185 scoped_ptr<BYTE[]> local_buffer(new BYTE[buffer_size]);
186 186
187 ASSERT_TRUE(interceptions.SetupConfigBuffer(local_buffer.get(), 187 ASSERT_TRUE(interceptions.SetupConfigBuffer(local_buffer.get(),
188 buffer_size)); 188 buffer_size));
189 189
190 // At this point, the interceptions should have been separated into two 190 // At this point, the interceptions should have been separated into two
191 // groups: one group with the local ("cold") interceptions, consisting of 191 // groups: one group with the local ("cold") interceptions, consisting of
192 // everything from ntdll and stuff set as INTRECEPTION_SERVICE_CALL, and 192 // everything from ntdll and stuff set as INTRECEPTION_SERVICE_CALL, and
193 // another group with the interceptions belonging to dlls that will be "hot" 193 // another group with the interceptions belonging to dlls that will be "hot"
194 // patched on the client. The second group lives on local_buffer, and the 194 // patched on the client. The second group lives on local_buffer, and the
195 // first group remains on the list of interceptions (inside the object 195 // first group remains on the list of interceptions (inside the object
196 // "interceptions"). There are 3 local interceptions (of ntdll); the 196 // "interceptions"). There are 3 local interceptions (of ntdll); the
197 // other 15 have to be sent to the child to be performed "hot". 197 // other 15 have to be sent to the child to be performed "hot".
198 EXPECT_EQ(3, interceptions.interceptions_.size()); 198 EXPECT_EQ(3u, interceptions.interceptions_.size());
199 199
200 int num_dlls, num_functions, num_names; 200 int num_dlls, num_functions, num_names;
201 WalkBuffer(local_buffer.get(), buffer_size, &num_dlls, &num_functions, 201 WalkBuffer(local_buffer.get(), buffer_size, &num_dlls, &num_functions,
202 &num_names); 202 &num_names);
203 203
204 // The 15 interceptions on the buffer (to the child) should be grouped on 6 204 // The 15 interceptions on the buffer (to the child) should be grouped on 6
205 // dlls. Only four interceptions are using an explicit name for the 205 // dlls. Only four interceptions are using an explicit name for the
206 // interceptor function. 206 // interceptor function.
207 EXPECT_EQ(6, num_dlls); 207 EXPECT_EQ(6, num_dlls);
208 EXPECT_EQ(15, num_functions); 208 EXPECT_EQ(15, num_functions);
(...skipping 16 matching lines...) Expand all
225 interceptions.AddToPatchedFunctions(L"ntdll.dll", "NtCreateFile", 225 interceptions.AddToPatchedFunctions(L"ntdll.dll", "NtCreateFile",
226 INTERCEPTION_SERVICE_CALL, function, 226 INTERCEPTION_SERVICE_CALL, function,
227 OPEN_FILE_ID); 227 OPEN_FILE_ID);
228 interceptions.AddToPatchedFunctions(L"kernel32.dll", "CreateFileEx", 228 interceptions.AddToPatchedFunctions(L"kernel32.dll", "CreateFileEx",
229 INTERCEPTION_EAT, function, OPEN_FILE_ID); 229 INTERCEPTION_EAT, function, OPEN_FILE_ID);
230 interceptions.AddToUnloadModules(L"some02.dll"); 230 interceptions.AddToUnloadModules(L"some02.dll");
231 interceptions.AddToPatchedFunctions(L"kernel32.dll", "SomeFileEx", 231 interceptions.AddToPatchedFunctions(L"kernel32.dll", "SomeFileEx",
232 INTERCEPTION_SMART_SIDESTEP, function, 232 INTERCEPTION_SMART_SIDESTEP, function,
233 OPEN_FILE_ID); 233 OPEN_FILE_ID);
234 // Verify that all interceptions were added 234 // Verify that all interceptions were added
235 ASSERT_EQ(5, interceptions.interceptions_.size()); 235 ASSERT_EQ(5u, interceptions.interceptions_.size());
236 236
237 size_t buffer_size = interceptions.GetBufferSize(); 237 size_t buffer_size = interceptions.GetBufferSize();
238 scoped_ptr<BYTE[]> local_buffer(new BYTE[buffer_size]); 238 scoped_ptr<BYTE[]> local_buffer(new BYTE[buffer_size]);
239 239
240 ASSERT_TRUE(interceptions.SetupConfigBuffer(local_buffer.get(), 240 ASSERT_TRUE(interceptions.SetupConfigBuffer(local_buffer.get(),
241 buffer_size)); 241 buffer_size));
242 242
243 // At this point, the interceptions should have been separated into two 243 // At this point, the interceptions should have been separated into two
244 // groups: one group with the local ("cold") interceptions, and another 244 // groups: one group with the local ("cold") interceptions, and another
245 // group with the interceptions belonging to dlls that will be "hot" 245 // group with the interceptions belonging to dlls that will be "hot"
246 // patched on the client. The second group lives on local_buffer, and the 246 // patched on the client. The second group lives on local_buffer, and the
247 // first group remains on the list of interceptions, in this case just one. 247 // first group remains on the list of interceptions, in this case just one.
248 EXPECT_EQ(1, interceptions.interceptions_.size()); 248 EXPECT_EQ(1u, interceptions.interceptions_.size());
249 249
250 int num_dlls, num_functions, num_names; 250 int num_dlls, num_functions, num_names;
251 WalkBuffer(local_buffer.get(), buffer_size, &num_dlls, &num_functions, 251 WalkBuffer(local_buffer.get(), buffer_size, &num_dlls, &num_functions,
252 &num_names); 252 &num_names);
253 253
254 EXPECT_EQ(3, num_dlls); 254 EXPECT_EQ(3, num_dlls);
255 EXPECT_EQ(4, num_functions); 255 EXPECT_EQ(4, num_functions);
256 EXPECT_EQ(0, num_names); 256 EXPECT_EQ(0, num_names);
257 } 257 }
258 258
259 } // namespace sandbox 259 } // namespace sandbox
OLDNEW
« no previous file with comments | « sandbox/win/src/handle_closer_test.cc ('k') | sandbox/win/src/ipc_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698