| OLD | NEW |
| 1 // Copyright (c) 2006-2008 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 #include "sandbox/src/dep.h" | 5 #include "sandbox/src/dep.h" |
| 6 | 6 |
| 7 #include "sandbox/src/sandbox_utils.h" | 7 #include "sandbox/src/sandbox_utils.h" |
| 8 #include "sandbox/tests/common/controller.h" | 8 #include "sandbox/tests/common/controller.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| 11 namespace sandbox { | 11 namespace sandbox { |
| 12 | 12 |
| 13 namespace { | 13 namespace { |
| 14 | 14 |
| 15 class DepTest : public testing::Test { | |
| 16 public: | |
| 17 static bool IsTestCaseDisabled() { | |
| 18 OSVERSIONINFOEX version_info; | |
| 19 version_info.dwOSVersionInfoSize = sizeof version_info; | |
| 20 GetVersionEx(reinterpret_cast<OSVERSIONINFO*>(&version_info)); | |
| 21 | |
| 22 // Windows 2000 doesn't support DEP at all. | |
| 23 if (version_info.dwMajorVersion == 5 && version_info.dwMinorVersion == 0) | |
| 24 return true; | |
| 25 | |
| 26 // Windows XP Service Pack 0 and 1 don't support DEP at all. | |
| 27 if (version_info.dwMajorVersion == 5 && version_info.dwMinorVersion == 1 | |
| 28 && version_info.wServicePackMajor < 2) | |
| 29 return true; | |
| 30 | |
| 31 // Bug 1212371 Vista SP0 DEP support is half-baked. Nobody seem to have | |
| 32 // noticed! | |
| 33 if (version_info.dwMajorVersion == 6 && | |
| 34 version_info.wServicePackMajor == 0) | |
| 35 return true; | |
| 36 | |
| 37 return false; | |
| 38 } | |
| 39 }; | |
| 40 | |
| 41 BYTE kReturnCode[] = { | 15 BYTE kReturnCode[] = { |
| 42 // ret | 16 // ret |
| 43 0xC3, | 17 0xC3, |
| 44 }; | 18 }; |
| 45 | 19 |
| 46 typedef void (*NullFunction)(); | 20 typedef void (*NullFunction)(); |
| 47 | 21 |
| 48 // This doesn't fail on Vista Service Pack 0 but it does on XP SP2 and Vista | 22 // This doesn't fail on Vista Service Pack 0 but it does on XP SP2 and Vista |
| 49 // SP1. I guess this is a bug in Vista SP0 w.r.t .data PE section. Needs | 23 // SP1. I guess this is a bug in Vista SP0 w.r.t .data PE section. Needs |
| 50 // investigation to be sure it is a bug and not an error on my part. | 24 // investigation to be sure it is a bug and not an error on my part. |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 return SBOX_TEST_SUCCEEDED; | 134 return SBOX_TEST_SUCCEEDED; |
| 161 default: | 135 default: |
| 162 return SBOX_TEST_INVALID_PARAMETER; | 136 return SBOX_TEST_INVALID_PARAMETER; |
| 163 } | 137 } |
| 164 return SBOX_TEST_FAILED_TO_EXECUTE_COMMAND; | 138 return SBOX_TEST_FAILED_TO_EXECUTE_COMMAND; |
| 165 } | 139 } |
| 166 | 140 |
| 167 } // namespace | 141 } // namespace |
| 168 | 142 |
| 169 // This test is disabled. See bug 1275842 | 143 // This test is disabled. See bug 1275842 |
| 170 TEST_F(DepTest, DISABLED_TestDepDisable) { | 144 TEST(DepTest, DISABLED_TestDepDisable) { |
| 171 TestRunner runner(JOB_UNPROTECTED, USER_INTERACTIVE, USER_INTERACTIVE); | 145 TestRunner runner(JOB_UNPROTECTED, USER_INTERACTIVE, USER_INTERACTIVE); |
| 172 | 146 |
| 173 runner.SetTimeout(INFINITE); | 147 runner.SetTimeout(INFINITE); |
| 174 | 148 |
| 175 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 1")); | 149 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 1")); |
| 176 // TODO(maruel): bug 1207762 Somehow test ATL7 | 150 // TODO(maruel): bug 1207762 Somehow test ATL7 |
| 177 // EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 2")); | 151 // EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 2")); |
| 178 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 3")); | 152 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 3")); |
| 179 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 4")); | 153 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 4")); |
| 180 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 5")); | 154 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 5")); |
| 181 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 6")); | 155 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckDepLevel 6")); |
| 182 } | 156 } |
| 183 | 157 |
| 184 } // namespace sandbox | 158 } // namespace sandbox |
| OLD | NEW |