summaryrefslogtreecommitdiffstats
path: root/sandbox/src/interception_unittest.cc
diff options
context:
space:
mode:
authorrvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-04 22:47:37 +0000
committerrvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-04 22:47:37 +0000
commit4bc818e1dc285910638203a0d94063a9e92e36b0 (patch)
tree871de4bc758b249b02246e0a449cd3c7960f76e3 /sandbox/src/interception_unittest.cc
parentbd06fc48da4098267e99ae9e03313c3689100147 (diff)
downloadchromium_src-4bc818e1dc285910638203a0d94063a9e92e36b0.zip
chromium_src-4bc818e1dc285910638203a0d94063a9e92e36b0.tar.gz
chromium_src-4bc818e1dc285910638203a0d94063a9e92e36b0.tar.bz2
Sandbox: Finish the interception manager support for x64.
Unit tests and integration tests run (as long as they don't depend on IPCs), both regular and under SANDBOX_EXPORTS. The interception agent is there, but no EAT interceptions yet. BUG=27218 TEST=unit tests/ integration tests. Review URL: http://codereview.chromium.org/565026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38143 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sandbox/src/interception_unittest.cc')
-rw-r--r--sandbox/src/interception_unittest.cc57
1 files changed, 33 insertions, 24 deletions
diff --git a/sandbox/src/interception_unittest.cc b/sandbox/src/interception_unittest.cc
index 1c6838e..883cc91 100644
--- a/sandbox/src/interception_unittest.cc
+++ b/sandbox/src/interception_unittest.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2006-2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -10,6 +10,7 @@
#include "base/scoped_ptr.h"
#include "sandbox/src/interception.h"
+#include "sandbox/src/interceptors.h"
#include "sandbox/src/interception_internal.h"
#include "sandbox/src/target_process.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -86,42 +87,49 @@ TEST(InterceptionManagerTest, BufferLayout1) {
// Any pointer will do for a function pointer.
void* function = &interceptions;
+ // We don't care about the interceptor id.
interceptions.AddToPatchedFunctions(L"ntdll.dll", "NtCreateFile",
- INTERCEPTION_SERVICE_CALL, function);
+ INTERCEPTION_SERVICE_CALL, function,
+ OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"kernel32.dll", "CreateFileEx",
- INTERCEPTION_EAT, function);
+ INTERCEPTION_EAT, function, OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"kernel32.dll", "SomeFileEx",
- INTERCEPTION_SMART_SIDESTEP, function);
+ INTERCEPTION_SMART_SIDESTEP, function,
+ OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"user32.dll", "FindWindow",
- INTERCEPTION_EAT, function);
+ INTERCEPTION_EAT, function, OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"kernel32.dll", "CreateMutex",
- INTERCEPTION_EAT, function);
+ INTERCEPTION_EAT, function, OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"user32.dll", "PostMsg",
- INTERCEPTION_EAT, function);
+ INTERCEPTION_EAT, function, OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"user32.dll", "PostMsg",
- INTERCEPTION_EAT, "replacement");
+ INTERCEPTION_EAT, "replacement",
+ OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"comctl.dll", "SaveAsDlg",
- INTERCEPTION_EAT, function);
+ INTERCEPTION_EAT, function, OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"ntdll.dll", "NtClose",
- INTERCEPTION_SERVICE_CALL, function);
+ INTERCEPTION_SERVICE_CALL, function,
+ OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"ntdll.dll", "NtOpenFile",
- INTERCEPTION_SIDESTEP, function);
+ INTERCEPTION_SIDESTEP, function,
+ OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"some.dll", "Superfn",
- INTERCEPTION_EAT, function);
+ INTERCEPTION_EAT, function, OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"comctl.dll", "SaveAsDlg",
- INTERCEPTION_EAT, "a");
+ INTERCEPTION_EAT, "a", OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"comctl.dll", "SaveAsDlg",
- INTERCEPTION_SIDESTEP, "ab");
+ INTERCEPTION_SIDESTEP, "ab", OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"comctl.dll", "SaveAsDlg",
- INTERCEPTION_EAT, "abc");
+ INTERCEPTION_EAT, "abc", OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"a.dll", "p",
- INTERCEPTION_EAT, function);
+ INTERCEPTION_EAT, function, OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"b.dll",
- "TheIncredibleCallToSaveTheWorld", INTERCEPTION_EAT, function);
+ "TheIncredibleCallToSaveTheWorld",
+ INTERCEPTION_EAT, function, OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"a.dll", "BIsLame",
- INTERCEPTION_EAT, function);
+ INTERCEPTION_EAT, function, OPEN_KEY_ID);
interceptions.AddToPatchedFunctions(L"a.dll", "ARules",
- INTERCEPTION_EAT, function);
+ INTERCEPTION_EAT, function, OPEN_KEY_ID);
// Verify that all interceptions were added
ASSERT_EQ(18, interceptions.interceptions_.size());
@@ -165,16 +173,17 @@ TEST(InterceptionManagerTest, BufferLayout2) {
// Any pointer will do for a function pointer.
void* function = &interceptions;
-
interceptions.AddToUnloadModules(L"some01.dll");
+ // We don't care about the interceptor id.
interceptions.AddToPatchedFunctions(L"ntdll.dll", "NtCreateFile",
- INTERCEPTION_SERVICE_CALL, function);
+ INTERCEPTION_SERVICE_CALL, function,
+ OPEN_FILE_ID);
interceptions.AddToPatchedFunctions(L"kernel32.dll", "CreateFileEx",
- INTERCEPTION_EAT, function);
+ INTERCEPTION_EAT, function, OPEN_FILE_ID);
interceptions.AddToUnloadModules(L"some02.dll");
interceptions.AddToPatchedFunctions(L"kernel32.dll", "SomeFileEx",
- INTERCEPTION_SMART_SIDESTEP, function);
-
+ INTERCEPTION_SMART_SIDESTEP, function,
+ OPEN_FILE_ID);
// Verify that all interceptions were added
ASSERT_EQ(5, interceptions.interceptions_.size());