diff options
Diffstat (limited to 'sandbox/win/src/dep_test.cc')
-rw-r--r-- | sandbox/win/src/dep_test.cc | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/sandbox/win/src/dep_test.cc b/sandbox/win/src/dep_test.cc deleted file mode 100644 index 2817caa..0000000 --- a/sandbox/win/src/dep_test.cc +++ /dev/null @@ -1,158 +0,0 @@ -// Copyright (c) 2011 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. - -#include "sandbox/win/src/dep.h" - -#include "sandbox/win/src/sandbox_utils.h" -#include "sandbox/win/tests/common/controller.h" -#include "testing/gtest/include/gtest/gtest.h" - -namespace sandbox { - -namespace { - -BYTE kReturnCode[] = { - // ret - 0xC3, -}; - -typedef void (*NullFunction)(); - -// This doesn't fail on Vista Service Pack 0 but it does on XP SP2 and Vista -// SP1. I guess this is a bug in Vista SP0 w.r.t .data PE section. Needs -// investigation to be sure it is a bug and not an error on my part. -bool GenerateDepException() { - bool result = false; - __try { - void* code = kReturnCode; - // Call this code. - reinterpret_cast<NullFunction>(code)(); - } __except(EXCEPTION_EXECUTE_HANDLER) { - result = true; - } - return result; -} - -bool GenerateDepAtl7Exception() { - // TODO(maruel): bug 1207762 Somehow test ATL7 - return GenerateDepException(); -} - -SBOX_TESTS_COMMAND int CheckDepLevel(int argc, wchar_t **argv) { - if (1 != argc) - return SBOX_TEST_FAILED_TO_EXECUTE_COMMAND; - - int flag = _wtoi(argv[0]); - switch (flag) { - case 1: - // DEP is completely disabled. - if (!SetCurrentProcessDEP(DEP_DISABLED)) { - if (!IsXPSP2OrLater()) - // That's fine. - return SBOX_TEST_SUCCEEDED; - return SBOX_TEST_DENIED; - } - if (GenerateDepException()) - return SBOX_TEST_FAILED; - if (GenerateDepAtl7Exception()) - return SBOX_TEST_FAILED; - return SBOX_TEST_SUCCEEDED; - case 2: - // DEP is enabled with ATL7 thunk support. - if (!SetCurrentProcessDEP(DEP_ENABLED_ATL7_COMPAT)) { - if (!IsXPSP2OrLater()) - // That's fine. - return SBOX_TEST_SUCCEEDED; - return SBOX_TEST_DENIED; - } - if (!GenerateDepException()) - return SBOX_TEST_FAILED; - if (GenerateDepAtl7Exception()) - return SBOX_TEST_FAILED; - return SBOX_TEST_SUCCEEDED; - case 3: - // DEP is enabled. - if (!SetCurrentProcessDEP(DEP_ENABLED)) { - if (!IsXPSP2OrLater()) - // That's fine. - return SBOX_TEST_SUCCEEDED; - return SBOX_TEST_DENIED; - } - if (!GenerateDepException()) - return SBOX_TEST_FAILED; - if (!GenerateDepAtl7Exception()) - return SBOX_TEST_FAILED; - return SBOX_TEST_SUCCEEDED; - case 4: - // DEP can't be disabled. - if (!SetCurrentProcessDEP(DEP_ENABLED)) { - if (!IsXPSP2OrLater()) - // That's fine. - return SBOX_TEST_SUCCEEDED; - } - if (SetCurrentProcessDEP(DEP_DISABLED)) { - return SBOX_TEST_DENIED; - } - // Verify that it is still enabled. - if (!GenerateDepException()) - return SBOX_TEST_FAILED; - if (!GenerateDepAtl7Exception()) - return SBOX_TEST_FAILED; - return SBOX_TEST_SUCCEEDED; - case 5: - // DEP can't be disabled. - if (!SetCurrentProcessDEP(DEP_ENABLED_ATL7_COMPAT)) { - if (!IsXPSP2OrLater()) - // That's fine. - return SBOX_TEST_SUCCEEDED; - } - if (SetCurrentProcessDEP(DEP_DISABLED)) { - return SBOX_TEST_DENIED; - } - // Verify that it is still enabled. - if (!GenerateDepException()) - return SBOX_TEST_FAILED; - if (!GenerateDepAtl7Exception()) - return SBOX_TEST_FAILED; - return SBOX_TEST_SUCCEEDED; - case 6: - // DEP can't be disabled. - if (!SetCurrentProcessDEP(DEP_ENABLED)) { - if (!IsXPSP2OrLater()) - // That's fine. - return SBOX_TEST_SUCCEEDED; - } - if (SetCurrentProcessDEP(DEP_ENABLED_ATL7_COMPAT)) { - return SBOX_TEST_DENIED; - } - // Verify that it is still enabled. - if (!GenerateDepException()) - return SBOX_TEST_FAILED; - if (!GenerateDepAtl7Exception()) - return SBOX_TEST_FAILED; - return SBOX_TEST_SUCCEEDED; - default: - return SBOX_TEST_INVALID_PARAMETER; - } - return SBOX_TEST_FAILED_TO_EXECUTE_COMMAND; -} - -} // namespace - -// This test is disabled. See bug 1275842 -TEST(DepTest, DISABLED_TestDepDisable) { - TestRunner runner(JOB_UNPROTECTED, USER_INTERACTIVE, USER_INTERACTIVE); - - runner.SetTimeout(INFINITE); - - EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 1")); - // TODO(maruel): bug 1207762 Somehow test ATL7 - // EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 2")); - EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 3")); - EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 4")); - EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 5")); - EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 6")); -} - -} // namespace sandbox |