OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "remoting/base/typed_buffer.h" | 5 #include "remoting/base/typed_buffer.h" |
| 6 |
| 7 #include <utility> |
| 8 |
6 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
7 | 10 |
8 namespace remoting { | 11 namespace remoting { |
9 | 12 |
10 namespace { | 13 namespace { |
11 | 14 |
12 struct Data { | 15 struct Data { |
13 // A variable size vector. | 16 // A variable size vector. |
14 int data[1]; | 17 int data[1]; |
15 }; | 18 }; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 TEST(TypedBufferTest, Pass) { | 53 TEST(TypedBufferTest, Pass) { |
51 TypedBuffer<Data> left; | 54 TypedBuffer<Data> left; |
52 TypedBuffer<Data> right(sizeof(int)); | 55 TypedBuffer<Data> right(sizeof(int)); |
53 | 56 |
54 EXPECT_FALSE(left.get()); | 57 EXPECT_FALSE(left.get()); |
55 EXPECT_EQ(left.length(), 0u); | 58 EXPECT_EQ(left.length(), 0u); |
56 EXPECT_TRUE(right.get()); | 59 EXPECT_TRUE(right.get()); |
57 EXPECT_EQ(right.length(), sizeof(int)); | 60 EXPECT_EQ(right.length(), sizeof(int)); |
58 | 61 |
59 Data* raw_ptr = right.get(); | 62 Data* raw_ptr = right.get(); |
60 left = right.Pass(); | 63 left = std::move(right); |
61 | 64 |
62 // Verify that passing ownership transfers both the buffer pointer and its | 65 // Verify that passing ownership transfers both the buffer pointer and its |
63 // length. | 66 // length. |
64 EXPECT_EQ(left.get(), raw_ptr); | 67 EXPECT_EQ(left.get(), raw_ptr); |
65 EXPECT_EQ(left.length(), sizeof(int)); | 68 EXPECT_EQ(left.length(), sizeof(int)); |
66 | 69 |
67 // Verify that the original object was cleared. | 70 // Verify that the original object was cleared. |
68 EXPECT_FALSE(right.get()); | 71 EXPECT_FALSE(right.get()); |
69 EXPECT_EQ(right.length(), 0u); | 72 EXPECT_EQ(right.length(), 0u); |
70 } | 73 } |
(...skipping 21 matching lines...) Expand all Loading... |
92 } | 95 } |
93 | 96 |
94 TEST(TypedBufferTest, GetAtOffset) { | 97 TEST(TypedBufferTest, GetAtOffset) { |
95 TypedBuffer<Data> buffer(sizeof(int) * 10); | 98 TypedBuffer<Data> buffer(sizeof(int) * 10); |
96 EXPECT_EQ(buffer.get(), buffer.GetAtOffset(0)); | 99 EXPECT_EQ(buffer.get(), buffer.GetAtOffset(0)); |
97 EXPECT_EQ(reinterpret_cast<Data*>(&buffer->data[9]), | 100 EXPECT_EQ(reinterpret_cast<Data*>(&buffer->data[9]), |
98 buffer.GetAtOffset(sizeof(int) * 9)); | 101 buffer.GetAtOffset(sizeof(int) * 9)); |
99 } | 102 } |
100 | 103 |
101 } // namespace remoting | 104 } // namespace remoting |
OLD | NEW |