Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(496)

Side by Side Diff: chrome/common/partial_circular_buffer_unittest.cc

Issue 1548153002: Switch to standard integer types in chrome/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/common/partial_circular_buffer.cc ('k') | chrome/common/pepper_flash.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 // The test buffer data is 52 bytes, wrap position is set to 20 (this is 5 // The test buffer data is 52 bytes, wrap position is set to 20 (this is
6 // arbitrarily chosen). The total buffer size is allocated dynamically based on 6 // arbitrarily chosen). The total buffer size is allocated dynamically based on
7 // the actual header size. This gives: 7 // the actual header size. This gives:
8 // Header of some size, non-wrapping part 20 bytes, wrapping part 32 bytes. 8 // Header of some size, non-wrapping part 20 bytes, wrapping part 32 bytes.
9 // As input data, a 14 byte array is used and repeatedly written. It's chosen 9 // As input data, a 14 byte array is used and repeatedly written. It's chosen
10 // not to be an integer factor smaller than the wrapping part. This ensures that 10 // not to be an integer factor smaller than the wrapping part. This ensures that
11 // the wrapped data isn't repeated at the same position. 11 // the wrapped data isn't repeated at the same position.
12 // Note that desipte the number of wraps (if one or more), the reference output 12 // Note that desipte the number of wraps (if one or more), the reference output
13 // data is the same since the offset at each wrap is always the same. 13 // data is the same since the offset at each wrap is always the same.
14 14
15 #include <stddef.h>
16 #include <stdint.h>
17
18 #include "base/macros.h"
15 #include "base/memory/scoped_ptr.h" 19 #include "base/memory/scoped_ptr.h"
16 #include "chrome/common/partial_circular_buffer.h" 20 #include "chrome/common/partial_circular_buffer.h"
17 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
18 22
19 const uint32 kWrapPosition = 20; 23 const uint32_t kWrapPosition = 20;
20 const uint8 kInputData[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; 24 const uint8_t kInputData[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
21 const uint8 kOutputRefDataWrap[] = 25 const uint8_t kOutputRefDataWrap[] =
22 // The 20 bytes in the non-wrapping part. 26 // The 20 bytes in the non-wrapping part.
23 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1, 2, 3, 4, 5, 6, 27 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1, 2, 3, 4, 5, 6,
24 // The 32 bytes in wrapping part. 28 // The 32 bytes in wrapping part.
25 11, 12, 13, 14, 29 11, 12, 13, 14, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1, 2, 3, 4,
26 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 30 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
27 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
28 31
29 class PartialCircularBufferTest : public testing::Test { 32 class PartialCircularBufferTest : public testing::Test {
30 public: 33 public:
31 PartialCircularBufferTest() { 34 PartialCircularBufferTest() {
32 PartialCircularBuffer::BufferData test_struct; 35 PartialCircularBuffer::BufferData test_struct;
33 buffer_header_size_ = 36 buffer_header_size_ =
34 &test_struct.data[0] - reinterpret_cast<uint8*>(&test_struct); 37 &test_struct.data[0] - reinterpret_cast<uint8_t*>(&test_struct);
35 38
36 buffer_.reset(new uint8[buffer_header_size_ + sizeof(kOutputRefDataWrap)]); 39 buffer_.reset(
40 new uint8_t[buffer_header_size_ + sizeof(kOutputRefDataWrap)]);
37 } 41 }
38 42
39 void InitWriteBuffer(bool append) { 43 void InitWriteBuffer(bool append) {
40 pcb_write_.reset(new PartialCircularBuffer( 44 pcb_write_.reset(new PartialCircularBuffer(
41 buffer_.get(), 45 buffer_.get(),
42 buffer_header_size_ + sizeof(kOutputRefDataWrap), 46 buffer_header_size_ + sizeof(kOutputRefDataWrap),
43 kWrapPosition, 47 kWrapPosition,
44 append)); 48 append));
45 } 49 }
46 50
47 void WriteToBuffer(int num) { 51 void WriteToBuffer(int num) {
48 for (int i = 0; i < num; ++i) 52 for (int i = 0; i < num; ++i)
49 pcb_write_->Write(kInputData, sizeof(kInputData)); 53 pcb_write_->Write(kInputData, sizeof(kInputData));
50 } 54 }
51 55
52 void InitReadBuffer() { 56 void InitReadBuffer() {
53 pcb_read_.reset(new PartialCircularBuffer( 57 pcb_read_.reset(new PartialCircularBuffer(
54 buffer_.get(), buffer_header_size_ + sizeof(kOutputRefDataWrap))); 58 buffer_.get(), buffer_header_size_ + sizeof(kOutputRefDataWrap)));
55 } 59 }
56 60
57 protected: 61 protected:
58 scoped_ptr<PartialCircularBuffer> pcb_write_; 62 scoped_ptr<PartialCircularBuffer> pcb_write_;
59 scoped_ptr<PartialCircularBuffer> pcb_read_; 63 scoped_ptr<PartialCircularBuffer> pcb_read_;
60 scoped_ptr<uint8[]> buffer_; 64 scoped_ptr<uint8_t[]> buffer_;
61 uint32 buffer_header_size_; 65 uint32_t buffer_header_size_;
62 66
63 DISALLOW_COPY_AND_ASSIGN(PartialCircularBufferTest); 67 DISALLOW_COPY_AND_ASSIGN(PartialCircularBufferTest);
64 }; 68 };
65 69
66 TEST_F(PartialCircularBufferTest, NoWrapBeginningPartOnly) { 70 TEST_F(PartialCircularBufferTest, NoWrapBeginningPartOnly) {
67 InitWriteBuffer(false); 71 InitWriteBuffer(false);
68 WriteToBuffer(1); 72 WriteToBuffer(1);
69 InitReadBuffer(); 73 InitReadBuffer();
70 74
71 uint8 output_data[sizeof(kInputData)] = {0}; 75 uint8_t output_data[sizeof(kInputData)] = {0};
72 EXPECT_EQ(sizeof(output_data), 76 EXPECT_EQ(sizeof(output_data),
73 pcb_read_->Read(output_data, sizeof(output_data))); 77 pcb_read_->Read(output_data, sizeof(output_data)));
74 78
75 EXPECT_EQ(0, memcmp(kInputData, output_data, sizeof(kInputData))); 79 EXPECT_EQ(0, memcmp(kInputData, output_data, sizeof(kInputData)));
76 80
77 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data))); 81 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data)));
78 } 82 }
79 83
80 TEST_F(PartialCircularBufferTest, NoWrapBeginningAndEndParts) { 84 TEST_F(PartialCircularBufferTest, NoWrapBeginningAndEndParts) {
81 InitWriteBuffer(false); 85 InitWriteBuffer(false);
82 WriteToBuffer(2); 86 WriteToBuffer(2);
83 InitReadBuffer(); 87 InitReadBuffer();
84 88
85 uint8 output_data[2 * sizeof(kInputData)] = {0}; 89 uint8_t output_data[2 * sizeof(kInputData)] = {0};
86 EXPECT_EQ(sizeof(output_data), 90 EXPECT_EQ(sizeof(output_data),
87 pcb_read_->Read(output_data, sizeof(output_data))); 91 pcb_read_->Read(output_data, sizeof(output_data)));
88 92
89 const uint8 output_ref_data[2 * sizeof(kInputData)] = 93 const uint8_t output_ref_data[2 * sizeof(kInputData)] = {
90 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 94 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
91 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; 95 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
92 EXPECT_EQ(0, memcmp(output_ref_data, output_data, sizeof(output_data))); 96 EXPECT_EQ(0, memcmp(output_ref_data, output_data, sizeof(output_data)));
93 97
94 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data))); 98 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data)));
95 } 99 }
96 100
97 TEST_F(PartialCircularBufferTest, WrapOnce) { 101 TEST_F(PartialCircularBufferTest, WrapOnce) {
98 InitWriteBuffer(false); 102 InitWriteBuffer(false);
99 WriteToBuffer(4); 103 WriteToBuffer(4);
100 InitReadBuffer(); 104 InitReadBuffer();
101 105
102 uint8 output_data[sizeof(kOutputRefDataWrap)] = {0}; 106 uint8_t output_data[sizeof(kOutputRefDataWrap)] = {0};
103 EXPECT_EQ(sizeof(output_data), 107 EXPECT_EQ(sizeof(output_data),
104 pcb_read_->Read(output_data, sizeof(output_data))); 108 pcb_read_->Read(output_data, sizeof(output_data)));
105 109
106 EXPECT_EQ(0, memcmp(kOutputRefDataWrap, output_data, sizeof(output_data))); 110 EXPECT_EQ(0, memcmp(kOutputRefDataWrap, output_data, sizeof(output_data)));
107 111
108 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data))); 112 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data)));
109 } 113 }
110 114
111 TEST_F(PartialCircularBufferTest, WrapTwice) { 115 TEST_F(PartialCircularBufferTest, WrapTwice) {
112 InitWriteBuffer(false); 116 InitWriteBuffer(false);
113 WriteToBuffer(7); 117 WriteToBuffer(7);
114 InitReadBuffer(); 118 InitReadBuffer();
115 119
116 uint8 output_data[sizeof(kOutputRefDataWrap)] = {0}; 120 uint8_t output_data[sizeof(kOutputRefDataWrap)] = {0};
117 EXPECT_EQ(sizeof(output_data), 121 EXPECT_EQ(sizeof(output_data),
118 pcb_read_->Read(output_data, sizeof(output_data))); 122 pcb_read_->Read(output_data, sizeof(output_data)));
119 123
120 EXPECT_EQ(0, memcmp(kOutputRefDataWrap, output_data, sizeof(output_data))); 124 EXPECT_EQ(0, memcmp(kOutputRefDataWrap, output_data, sizeof(output_data)));
121 125
122 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data))); 126 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data)));
123 } 127 }
124 128
125 TEST_F(PartialCircularBufferTest, WrapOnceSmallerOutputBuffer) { 129 TEST_F(PartialCircularBufferTest, WrapOnceSmallerOutputBuffer) {
126 InitWriteBuffer(false); 130 InitWriteBuffer(false);
127 WriteToBuffer(4); 131 WriteToBuffer(4);
128 InitReadBuffer(); 132 InitReadBuffer();
129 133
130 uint8 output_data[sizeof(kOutputRefDataWrap)] = {0}; 134 uint8_t output_data[sizeof(kOutputRefDataWrap)] = {0};
131 const uint32 size_per_read = 16; 135 const uint32_t size_per_read = 16;
132 uint32 read = 0; 136 uint32_t read = 0;
133 for (; read + size_per_read <= sizeof(output_data); read += size_per_read) { 137 for (; read + size_per_read <= sizeof(output_data); read += size_per_read) {
134 EXPECT_EQ(size_per_read, 138 EXPECT_EQ(size_per_read,
135 pcb_read_->Read(output_data + read, size_per_read)); 139 pcb_read_->Read(output_data + read, size_per_read));
136 } 140 }
137 EXPECT_EQ(sizeof(output_data) - read, 141 EXPECT_EQ(sizeof(output_data) - read,
138 pcb_read_->Read(output_data + read, size_per_read)); 142 pcb_read_->Read(output_data + read, size_per_read));
139 143
140 EXPECT_EQ(0, memcmp(kOutputRefDataWrap, output_data, sizeof(output_data))); 144 EXPECT_EQ(0, memcmp(kOutputRefDataWrap, output_data, sizeof(output_data)));
141 145
142 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data))); 146 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data)));
143 } 147 }
144 148
145 TEST_F(PartialCircularBufferTest, WrapOnceWithAppend) { 149 TEST_F(PartialCircularBufferTest, WrapOnceWithAppend) {
146 InitWriteBuffer(false); 150 InitWriteBuffer(false);
147 WriteToBuffer(2); 151 WriteToBuffer(2);
148 InitWriteBuffer(true); 152 InitWriteBuffer(true);
149 WriteToBuffer(2); 153 WriteToBuffer(2);
150 InitReadBuffer(); 154 InitReadBuffer();
151 155
152 uint8 output_data[sizeof(kOutputRefDataWrap)] = {0}; 156 uint8_t output_data[sizeof(kOutputRefDataWrap)] = {0};
153 EXPECT_EQ(sizeof(output_data), 157 EXPECT_EQ(sizeof(output_data),
154 pcb_read_->Read(output_data, sizeof(output_data))); 158 pcb_read_->Read(output_data, sizeof(output_data)));
155 159
156 EXPECT_EQ(0, memcmp(kOutputRefDataWrap, output_data, sizeof(output_data))); 160 EXPECT_EQ(0, memcmp(kOutputRefDataWrap, output_data, sizeof(output_data)));
157 161
158 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data))); 162 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data)));
159 } 163 }
160 164
161 TEST_F(PartialCircularBufferTest, WrapTwiceWithAppend) { 165 TEST_F(PartialCircularBufferTest, WrapTwiceWithAppend) {
162 InitWriteBuffer(false); 166 InitWriteBuffer(false);
163 WriteToBuffer(4); 167 WriteToBuffer(4);
164 InitWriteBuffer(true); 168 InitWriteBuffer(true);
165 WriteToBuffer(3); 169 WriteToBuffer(3);
166 InitReadBuffer(); 170 InitReadBuffer();
167 171
168 uint8 output_data[sizeof(kOutputRefDataWrap)] = {0}; 172 uint8_t output_data[sizeof(kOutputRefDataWrap)] = {0};
169 EXPECT_EQ(sizeof(output_data), 173 EXPECT_EQ(sizeof(output_data),
170 pcb_read_->Read(output_data, sizeof(output_data))); 174 pcb_read_->Read(output_data, sizeof(output_data)));
171 175
172 EXPECT_EQ(0, memcmp(kOutputRefDataWrap, output_data, sizeof(output_data))); 176 EXPECT_EQ(0, memcmp(kOutputRefDataWrap, output_data, sizeof(output_data)));
173 177
174 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data))); 178 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data)));
175 } 179 }
176 180
177 TEST_F(PartialCircularBufferTest, WrapOnceThenOverwriteWithNoWrap) { 181 TEST_F(PartialCircularBufferTest, WrapOnceThenOverwriteWithNoWrap) {
178 InitWriteBuffer(false); 182 InitWriteBuffer(false);
179 WriteToBuffer(4); 183 WriteToBuffer(4);
180 InitWriteBuffer(false); 184 InitWriteBuffer(false);
181 WriteToBuffer(1); 185 WriteToBuffer(1);
182 InitReadBuffer(); 186 InitReadBuffer();
183 187
184 uint8 output_data[sizeof(kInputData)] = {0}; 188 uint8_t output_data[sizeof(kInputData)] = {0};
185 EXPECT_EQ(sizeof(output_data), 189 EXPECT_EQ(sizeof(output_data),
186 pcb_read_->Read(output_data, sizeof(output_data))); 190 pcb_read_->Read(output_data, sizeof(output_data)));
187 191
188 EXPECT_EQ(0, memcmp(kInputData, output_data, sizeof(kInputData))); 192 EXPECT_EQ(0, memcmp(kInputData, output_data, sizeof(kInputData)));
189 193
190 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data))); 194 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data)));
191 } 195 }
192 196
193 TEST_F(PartialCircularBufferTest, WrapTwiceWithSingleWrite) { 197 TEST_F(PartialCircularBufferTest, WrapTwiceWithSingleWrite) {
194 const size_t kInputSize = sizeof(kInputData); 198 const size_t kInputSize = sizeof(kInputData);
195 const size_t kLargeSize = kInputSize * 7; 199 const size_t kLargeSize = kInputSize * 7;
196 uint8 large_input[kLargeSize] = {0}; 200 uint8_t large_input[kLargeSize] = {0};
197 for (size_t offset = 0; offset < kLargeSize; offset += kInputSize) 201 for (size_t offset = 0; offset < kLargeSize; offset += kInputSize)
198 memcpy(large_input + offset, kInputData, kInputSize); 202 memcpy(large_input + offset, kInputData, kInputSize);
199 203
200 InitWriteBuffer(false); 204 InitWriteBuffer(false);
201 pcb_write_->Write(large_input, kLargeSize); 205 pcb_write_->Write(large_input, kLargeSize);
202 InitReadBuffer(); 206 InitReadBuffer();
203 207
204 uint8 output_data[sizeof(kOutputRefDataWrap)] = {0}; 208 uint8_t output_data[sizeof(kOutputRefDataWrap)] = {0};
205 EXPECT_EQ(sizeof(output_data), 209 EXPECT_EQ(sizeof(output_data),
206 pcb_read_->Read(output_data, sizeof(output_data))); 210 pcb_read_->Read(output_data, sizeof(output_data)));
207 211
208 EXPECT_EQ(0, memcmp(kOutputRefDataWrap, output_data, sizeof(output_data))); 212 EXPECT_EQ(0, memcmp(kOutputRefDataWrap, output_data, sizeof(output_data)));
209 213
210 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data))); 214 EXPECT_EQ(0u, pcb_read_->Read(output_data, sizeof(output_data)));
211 } 215 }
212 216
OLDNEW
« no previous file with comments | « chrome/common/partial_circular_buffer.cc ('k') | chrome/common/pepper_flash.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698