| Index: base/win/scoped_handle_unittest.cc
|
| diff --git a/base/win/scoped_handle_unittest.cc b/base/win/scoped_handle_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ee2a551d63c1cebf72936e47fba92362d112acfb
|
| --- /dev/null
|
| +++ b/base/win/scoped_handle_unittest.cc
|
| @@ -0,0 +1,31 @@
|
| +// Copyright (c) 2012 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 "base/win/scoped_handle.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +void CreateHandle(int value, HANDLE* result) {
|
| + *result = reinterpret_cast<HANDLE>(value);
|
| +}
|
| +
|
| +TEST(ScopedHandleTest, Receive) {
|
| + base::win::ScopedHandle handle;
|
| + int value = 51;
|
| +
|
| + {
|
| + // This is not really the expected use case, but it is a very explicit test.
|
| + base::win::ScopedHandle::Receiver a = handle.Receive();
|
| + HANDLE* pointer = a;
|
| + *pointer = reinterpret_cast<HANDLE>(value);
|
| + }
|
| +
|
| + EXPECT_EQ(handle.Get(), reinterpret_cast<HANDLE>(value));
|
| + HANDLE to_discard = handle.Take();
|
| +
|
| + // The standard use case:
|
| + value = 183;
|
| + CreateHandle(value, handle.Receive());
|
| + EXPECT_EQ(handle.Get(), reinterpret_cast<HANDLE>(value));
|
| + to_discard = handle.Take();
|
| +}
|
|
|