OLD | NEW |
1 // Copyright (c) 2006-2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2010 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/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "sandbox/src/crosscall_client.h" | 6 #include "sandbox/src/crosscall_client.h" |
7 #include "sandbox/src/crosscall_server.h" | 7 #include "sandbox/src/crosscall_server.h" |
8 #include "sandbox/src/sharedmem_ipc_client.h" | 8 #include "sandbox/src/sharedmem_ipc_client.h" |
9 #include "sandbox/src/sharedmem_ipc_server.h" | 9 #include "sandbox/src/sharedmem_ipc_server.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 params_2.CopyParamIn(0, &value, sizeof(value), false, ULONG_TYPE); | 325 params_2.CopyParamIn(0, &value, sizeof(value), false, ULONG_TYPE); |
326 buffer = const_cast<void*>(params_2.GetBuffer()); | 326 buffer = const_cast<void*>(params_2.GetBuffer()); |
327 | 327 |
328 EXPECT_TRUE(NULL != buffer); | 328 EXPECT_TRUE(NULL != buffer); |
329 ccp = CrossCallParamsEx::CreateFromBuffer(buffer, params_2.GetSize(), | 329 ccp = CrossCallParamsEx::CreateFromBuffer(buffer, params_2.GetSize(), |
330 &out_size); | 330 &out_size); |
331 // If the buffer is malformed the return is NULL. | 331 // If the buffer is malformed the return is NULL. |
332 EXPECT_TRUE(NULL == ccp); | 332 EXPECT_TRUE(NULL == ccp); |
333 } | 333 } |
334 #endif // defined(NDEBUG) | 334 #endif // defined(NDEBUG) |
| 335 |
| 336 ActualCallParams<1, 256> params_3(kTag, 1); |
| 337 params_3.CopyParamIn(0, &value, sizeof(value), false, ULONG_TYPE); |
| 338 buffer = const_cast<void*>(params_3.GetBuffer()); |
| 339 EXPECT_TRUE(NULL != buffer); |
| 340 |
| 341 size_t correct_size = params_3.OverrideSize(1); |
| 342 ccp = CrossCallParamsEx::CreateFromBuffer(buffer, 256, &out_size); |
| 343 EXPECT_TRUE(NULL == ccp); |
| 344 |
| 345 params_3.OverrideSize(correct_size - 4); |
| 346 ccp = CrossCallParamsEx::CreateFromBuffer(buffer, 256, &out_size); |
| 347 EXPECT_TRUE(NULL == ccp); |
| 348 |
| 349 params_3.OverrideSize(correct_size); |
| 350 ccp = CrossCallParamsEx::CreateFromBuffer(buffer, 256, &out_size); |
| 351 EXPECT_TRUE(NULL != ccp); |
335 } | 352 } |
336 | 353 |
337 // This structure is passed to the mock server threads to simulate | 354 // This structure is passed to the mock server threads to simulate |
338 // the server side IPC so it has the required kernel objects. | 355 // the server side IPC so it has the required kernel objects. |
339 struct ServerEvents { | 356 struct ServerEvents { |
340 HANDLE ping; | 357 HANDLE ping; |
341 HANDLE pong; | 358 HANDLE pong; |
342 volatile LONG* state; | 359 volatile LONG* state; |
343 HANDLE mutex; | 360 HANDLE mutex; |
344 }; | 361 }; |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
596 &call_return)); | 613 &call_return)); |
597 EXPECT_EQ(SBOX_ALL_OK, call_return.call_outcome); | 614 EXPECT_EQ(SBOX_ALL_OK, call_return.call_outcome); |
598 EXPECT_TRUE(bar == call_return.extended[0].handle); | 615 EXPECT_TRUE(bar == call_return.extended[0].handle); |
599 EXPECT_EQ(foo, call_return.extended[1].unsigned_int); | 616 EXPECT_EQ(foo, call_return.extended[1].unsigned_int); |
600 | 617 |
601 CloseChannelEvents(client_control); | 618 CloseChannelEvents(client_control); |
602 delete[] reinterpret_cast<char*>(client_control); | 619 delete[] reinterpret_cast<char*>(client_control); |
603 } | 620 } |
604 | 621 |
605 } // namespace sandbox | 622 } // namespace sandbox |
OLD | NEW |