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); | |
352 } | 335 } |
353 | 336 |
354 // This structure is passed to the mock server threads to simulate | 337 // This structure is passed to the mock server threads to simulate |
355 // the server side IPC so it has the required kernel objects. | 338 // the server side IPC so it has the required kernel objects. |
356 struct ServerEvents { | 339 struct ServerEvents { |
357 HANDLE ping; | 340 HANDLE ping; |
358 HANDLE pong; | 341 HANDLE pong; |
359 volatile LONG* state; | 342 volatile LONG* state; |
360 HANDLE mutex; | 343 HANDLE mutex; |
361 }; | 344 }; |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
613 &call_return)); | 596 &call_return)); |
614 EXPECT_EQ(SBOX_ALL_OK, call_return.call_outcome); | 597 EXPECT_EQ(SBOX_ALL_OK, call_return.call_outcome); |
615 EXPECT_TRUE(bar == call_return.extended[0].handle); | 598 EXPECT_TRUE(bar == call_return.extended[0].handle); |
616 EXPECT_EQ(foo, call_return.extended[1].unsigned_int); | 599 EXPECT_EQ(foo, call_return.extended[1].unsigned_int); |
617 | 600 |
618 CloseChannelEvents(client_control); | 601 CloseChannelEvents(client_control); |
619 delete[] reinterpret_cast<char*>(client_control); | 602 delete[] reinterpret_cast<char*>(client_control); |
620 } | 603 } |
621 | 604 |
622 } // namespace sandbox | 605 } // namespace sandbox |
OLD | NEW |