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 "base/scoped_handle_win.h" | 5 #include "base/win/scoped_handle.h" |
6 #include "testing/gtest/include/gtest/gtest.h" | |
7 #include "sandbox/src/sandbox.h" | 6 #include "sandbox/src/sandbox.h" |
8 #include "sandbox/src/sandbox_policy.h" | 7 #include "sandbox/src/sandbox_policy.h" |
9 #include "sandbox/src/sandbox_factory.h" | 8 #include "sandbox/src/sandbox_factory.h" |
10 #include "sandbox/src/nt_internals.h" | 9 #include "sandbox/src/nt_internals.h" |
11 #include "sandbox/tests/common/controller.h" | 10 #include "sandbox/tests/common/controller.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" |
12 | 12 |
13 namespace sandbox { | 13 namespace sandbox { |
14 | 14 |
15 SBOX_TESTS_COMMAND int Event_Open(int argc, wchar_t **argv) { | 15 SBOX_TESTS_COMMAND int Event_Open(int argc, wchar_t **argv) { |
16 if (argc != 2) | 16 if (argc != 2) |
17 return SBOX_TEST_FAILED_TO_EXECUTE_COMMAND; | 17 return SBOX_TEST_FAILED_TO_EXECUTE_COMMAND; |
18 | 18 |
19 DWORD desired_access = SYNCHRONIZE; | 19 DWORD desired_access = SYNCHRONIZE; |
20 if (L'f' == argv[0][0]) | 20 if (L'f' == argv[0][0]) |
21 desired_access = EVENT_ALL_ACCESS; | 21 desired_access = EVENT_ALL_ACCESS; |
22 | 22 |
23 ScopedHandle event_open(::OpenEvent(desired_access, FALSE, argv[1])); | 23 base::win::ScopedHandle event_open(::OpenEvent( |
| 24 desired_access, FALSE, argv[1])); |
24 DWORD error_open = ::GetLastError(); | 25 DWORD error_open = ::GetLastError(); |
25 | 26 |
26 if (event_open.Get()) | 27 if (event_open.Get()) |
27 return SBOX_TEST_SUCCEEDED; | 28 return SBOX_TEST_SUCCEEDED; |
28 | 29 |
29 if (ERROR_ACCESS_DENIED == error_open || | 30 if (ERROR_ACCESS_DENIED == error_open || |
30 ERROR_BAD_PATHNAME == error_open) | 31 ERROR_BAD_PATHNAME == error_open) |
31 return SBOX_TEST_DENIED; | 32 return SBOX_TEST_DENIED; |
32 | 33 |
33 return SBOX_TEST_FAILED; | 34 return SBOX_TEST_FAILED; |
34 } | 35 } |
35 | 36 |
36 SBOX_TESTS_COMMAND int Event_CreateOpen(int argc, wchar_t **argv) { | 37 SBOX_TESTS_COMMAND int Event_CreateOpen(int argc, wchar_t **argv) { |
37 if (argc < 2 || argc > 3) | 38 if (argc < 2 || argc > 3) |
38 return SBOX_TEST_FAILED_TO_EXECUTE_COMMAND; | 39 return SBOX_TEST_FAILED_TO_EXECUTE_COMMAND; |
39 | 40 |
40 wchar_t *event_name = NULL; | 41 wchar_t *event_name = NULL; |
41 if (3 == argc) | 42 if (3 == argc) |
42 event_name = argv[2]; | 43 event_name = argv[2]; |
43 | 44 |
44 BOOL manual_reset = FALSE; | 45 BOOL manual_reset = FALSE; |
45 BOOL initial_state = FALSE; | 46 BOOL initial_state = FALSE; |
46 if (L't' == argv[0][0]) | 47 if (L't' == argv[0][0]) |
47 manual_reset = TRUE; | 48 manual_reset = TRUE; |
48 if (L't' == argv[1][0]) | 49 if (L't' == argv[1][0]) |
49 initial_state = TRUE; | 50 initial_state = TRUE; |
50 | 51 |
51 ScopedHandle event_create(::CreateEvent(NULL, manual_reset, initial_state, | 52 base::win::ScopedHandle event_create(::CreateEvent( |
52 event_name)); | 53 NULL, manual_reset, initial_state, event_name)); |
53 DWORD error_create = ::GetLastError(); | 54 DWORD error_create = ::GetLastError(); |
54 ScopedHandle event_open; | 55 base::win::ScopedHandle event_open; |
55 if (event_name) | 56 if (event_name) |
56 event_open.Set(::OpenEvent(EVENT_ALL_ACCESS, FALSE, event_name)); | 57 event_open.Set(::OpenEvent(EVENT_ALL_ACCESS, FALSE, event_name)); |
57 | 58 |
58 if (event_create.Get()) { | 59 if (event_create.Get()) { |
59 DWORD wait = ::WaitForSingleObject(event_create.Get(), 0); | 60 DWORD wait = ::WaitForSingleObject(event_create.Get(), 0); |
60 if (initial_state && WAIT_OBJECT_0 != wait) | 61 if (initial_state && WAIT_OBJECT_0 != wait) |
61 return SBOX_TEST_FAILED; | 62 return SBOX_TEST_FAILED; |
62 | 63 |
63 if (!initial_state && WAIT_TIMEOUT != wait) | 64 if (!initial_state && WAIT_TIMEOUT != wait) |
64 return SBOX_TEST_FAILED; | 65 return SBOX_TEST_FAILED; |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 EXPECT_TRUE(runner.AddRule(TargetPolicy::SUBSYS_SYNC, | 118 EXPECT_TRUE(runner.AddRule(TargetPolicy::SUBSYS_SYNC, |
118 TargetPolicy::EVENTS_ALLOW_READONLY, | 119 TargetPolicy::EVENTS_ALLOW_READONLY, |
119 L"test2")); | 120 L"test2")); |
120 EXPECT_TRUE(runner.AddRule(TargetPolicy::SUBSYS_SYNC, | 121 EXPECT_TRUE(runner.AddRule(TargetPolicy::SUBSYS_SYNC, |
121 TargetPolicy::EVENTS_ALLOW_READONLY, | 122 TargetPolicy::EVENTS_ALLOW_READONLY, |
122 L"test5")); | 123 L"test5")); |
123 EXPECT_TRUE(runner.AddRule(TargetPolicy::SUBSYS_SYNC, | 124 EXPECT_TRUE(runner.AddRule(TargetPolicy::SUBSYS_SYNC, |
124 TargetPolicy::EVENTS_ALLOW_READONLY, | 125 TargetPolicy::EVENTS_ALLOW_READONLY, |
125 L"test6")); | 126 L"test6")); |
126 | 127 |
127 ScopedHandle handle1(::CreateEvent(NULL, FALSE, FALSE, L"test1")); | 128 base::win::ScopedHandle handle1(::CreateEvent(NULL, FALSE, FALSE, L"test1")); |
128 ScopedHandle handle2(::CreateEvent(NULL, FALSE, FALSE, L"test2")); | 129 base::win::ScopedHandle handle2(::CreateEvent(NULL, FALSE, FALSE, L"test2")); |
129 ScopedHandle handle3(::CreateEvent(NULL, FALSE, FALSE, L"test3")); | 130 base::win::ScopedHandle handle3(::CreateEvent(NULL, FALSE, FALSE, L"test3")); |
130 ScopedHandle handle4(::CreateEvent(NULL, FALSE, FALSE, L"test4")); | 131 base::win::ScopedHandle handle4(::CreateEvent(NULL, FALSE, FALSE, L"test4")); |
131 | 132 |
132 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"Event_CreateOpen f f")); | 133 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"Event_CreateOpen f f")); |
133 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"Event_CreateOpen t f")); | 134 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"Event_CreateOpen t f")); |
134 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"Event_Open f test1")); | 135 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"Event_Open f test1")); |
135 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"Event_Open s test2")); | 136 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"Event_Open s test2")); |
136 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"Event_Open f test3")); | 137 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"Event_Open f test3")); |
137 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"Event_Open s test4")); | 138 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"Event_Open s test4")); |
138 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"Event_CreateOpen f f test5")); | 139 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"Event_CreateOpen f f test5")); |
139 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"Event_CreateOpen t f test6")); | 140 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"Event_CreateOpen t f test6")); |
140 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"Event_CreateOpen f t test5")); | 141 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"Event_CreateOpen f t test5")); |
141 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"Event_CreateOpen t t test6")); | 142 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"Event_CreateOpen t t test6")); |
142 } | 143 } |
143 | 144 |
144 } // namespace sandbox | 145 } // namespace sandbox |
OLD | NEW |