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

Side by Side Diff: courgette/streams_unittest.cc

Issue 1543643002: Switch to standard integer types in courgette/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix 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 | « courgette/streams.cc ('k') | courgette/third_party/bsdiff.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 (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "courgette/streams.h" 5 #include "courgette/streams.h"
6 6
7 #include <stddef.h>
8 #include <stdint.h>
9
7 #include <vector> 10 #include <vector>
8 11
9 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
10 13
11 TEST(StreamsTest, SimpleWriteRead) { 14 TEST(StreamsTest, SimpleWriteRead) {
12 const unsigned int kValue1 = 12345; 15 const unsigned int kValue1 = 12345;
13 courgette::SinkStream sink; 16 courgette::SinkStream sink;
14 17
15 EXPECT_TRUE(sink.WriteVarint32(kValue1)); 18 EXPECT_TRUE(sink.WriteVarint32(kValue1));
16 19
17 const uint8* sink_buffer = sink.Buffer(); 20 const uint8_t* sink_buffer = sink.Buffer();
18 size_t length = sink.Length(); 21 size_t length = sink.Length();
19 22
20 courgette::SourceStream source; 23 courgette::SourceStream source;
21 source.Init(sink_buffer, length); 24 source.Init(sink_buffer, length);
22 25
23 unsigned int value; 26 unsigned int value;
24 bool can_read = source.ReadVarint32(&value); 27 bool can_read = source.ReadVarint32(&value);
25 EXPECT_TRUE(can_read); 28 EXPECT_TRUE(can_read);
26 EXPECT_EQ(kValue1, value); 29 EXPECT_EQ(kValue1, value);
27 EXPECT_EQ(0U, source.Remaining()); 30 EXPECT_EQ(0U, source.Remaining());
28 } 31 }
29 32
30 TEST(StreamsTest, SimpleWriteRead2) { 33 TEST(StreamsTest, SimpleWriteRead2) {
31 courgette::SinkStream sink; 34 courgette::SinkStream sink;
32 35
33 EXPECT_TRUE(sink.Write("Hello", 5)); 36 EXPECT_TRUE(sink.Write("Hello", 5));
34 37
35 const uint8* sink_buffer = sink.Buffer(); 38 const uint8_t* sink_buffer = sink.Buffer();
36 size_t sink_length = sink.Length(); 39 size_t sink_length = sink.Length();
37 40
38 courgette::SourceStream source; 41 courgette::SourceStream source;
39 source.Init(sink_buffer, sink_length); 42 source.Init(sink_buffer, sink_length);
40 43
41 char text[10] = {0}; 44 char text[10] = {0};
42 bool can_read = source.Read(text, 5); 45 bool can_read = source.Read(text, 5);
43 EXPECT_TRUE(can_read); 46 EXPECT_TRUE(can_read);
44 EXPECT_EQ(0, memcmp("Hello", text, 5)); 47 EXPECT_EQ(0, memcmp("Hello", text, 5));
45 EXPECT_EQ(0U, source.Remaining()); 48 EXPECT_EQ(0U, source.Remaining());
46 } 49 }
47 50
48 TEST(StreamsTest, StreamSetWriteRead) { 51 TEST(StreamsTest, StreamSetWriteRead) {
49 courgette::SinkStreamSet out; 52 courgette::SinkStreamSet out;
50 out.Init(4); 53 out.Init(4);
51 54
52 const unsigned int kValue1 = 12345; 55 const unsigned int kValue1 = 12345;
53 56
54 EXPECT_TRUE(out.stream(3)->WriteVarint32(kValue1)); 57 EXPECT_TRUE(out.stream(3)->WriteVarint32(kValue1));
55 58
56 courgette::SinkStream collected; 59 courgette::SinkStream collected;
57 60
58 EXPECT_TRUE(out.CopyTo(&collected)); 61 EXPECT_TRUE(out.CopyTo(&collected));
59 62
60 const uint8* collected_buffer = collected.Buffer(); 63 const uint8_t* collected_buffer = collected.Buffer();
61 size_t collected_length = collected.Length(); 64 size_t collected_length = collected.Length();
62 65
63 courgette::SourceStreamSet in; 66 courgette::SourceStreamSet in;
64 bool can_init = in.Init(collected_buffer, collected_length); 67 bool can_init = in.Init(collected_buffer, collected_length);
65 EXPECT_TRUE(can_init); 68 EXPECT_TRUE(can_init);
66 69
67 uint32 value; 70 uint32_t value;
68 bool can_read = in.stream(3)->ReadVarint32(&value); 71 bool can_read = in.stream(3)->ReadVarint32(&value);
69 EXPECT_TRUE(can_read); 72 EXPECT_TRUE(can_read);
70 EXPECT_EQ(kValue1, value); 73 EXPECT_EQ(kValue1, value);
71 EXPECT_EQ(0U, in.stream(3)->Remaining()); 74 EXPECT_EQ(0U, in.stream(3)->Remaining());
72 EXPECT_EQ(0U, in.stream(2)->Remaining()); 75 EXPECT_EQ(0U, in.stream(2)->Remaining());
73 } 76 }
74 77
75 TEST(StreamsTest, StreamSetWriteRead2) { 78 TEST(StreamsTest, StreamSetWriteRead2) {
76 const size_t kNumberOfStreams = 4; 79 const size_t kNumberOfStreams = 4;
77 const unsigned int kEnd = ~0U; 80 const unsigned int kEnd = ~0U;
(...skipping 19 matching lines...) Expand all
97 100
98 EXPECT_TRUE(out.CopyTo(&collected)); 101 EXPECT_TRUE(out.CopyTo(&collected));
99 102
100 courgette::SourceStreamSet in; 103 courgette::SourceStreamSet in;
101 bool can_init = in.Init(collected.Buffer(), collected.Length()); 104 bool can_init = in.Init(collected.Buffer(), collected.Length());
102 EXPECT_TRUE(can_init); 105 EXPECT_TRUE(can_init);
103 106
104 for (size_t i = 0; data[i] != kEnd; i += 2) { 107 for (size_t i = 0; data[i] != kEnd; i += 2) {
105 size_t id = data[i]; 108 size_t id = data[i];
106 size_t datum = data[i + 1]; 109 size_t datum = data[i + 1];
107 uint32 value = 77; 110 uint32_t value = 77;
108 bool can_read = in.stream(id)->ReadVarint32(&value); 111 bool can_read = in.stream(id)->ReadVarint32(&value);
109 EXPECT_TRUE(can_read); 112 EXPECT_TRUE(can_read);
110 EXPECT_EQ(datum, value); 113 EXPECT_EQ(datum, value);
111 } 114 }
112 115
113 for (size_t i = 0; i < kNumberOfStreams; ++i) { 116 for (size_t i = 0; i < kNumberOfStreams; ++i) {
114 EXPECT_EQ(0U, in.stream(i)->Remaining()); 117 EXPECT_EQ(0U, in.stream(i)->Remaining());
115 } 118 }
116 } 119 }
117 120
118 TEST(StreamsTest, SignedVarint32) { 121 TEST(StreamsTest, SignedVarint32) {
119 courgette::SinkStream out; 122 courgette::SinkStream out;
120 123
121 static const int32 data[] = { 124 static const int32_t data[] = {0, 64, 128, 8192,
122 0, 64, 128, 8192, 16384, 125 16384, 1 << 20, 1 << 21, 1 << 22,
123 1 << 20, 1 << 21, 1 << 22, 126 1 << 27, 1 << 28, 0x7fffffff, -0x7fffffff};
124 1 << 27, 1 << 28,
125 0x7fffffff, -0x7fffffff
126 };
127 127
128 std::vector<int32> values; 128 std::vector<int32_t> values;
129 for (size_t i = 0; i < sizeof(data)/sizeof(data[0]); ++i) { 129 for (size_t i = 0; i < sizeof(data)/sizeof(data[0]); ++i) {
130 int32 basis = data[i]; 130 int32_t basis = data[i];
131 for (int delta = -4; delta <= 4; ++delta) { 131 for (int delta = -4; delta <= 4; ++delta) {
132 EXPECT_TRUE(out.WriteVarint32Signed(basis + delta)); 132 EXPECT_TRUE(out.WriteVarint32Signed(basis + delta));
133 values.push_back(basis + delta); 133 values.push_back(basis + delta);
134 EXPECT_TRUE(out.WriteVarint32Signed(-basis + delta)); 134 EXPECT_TRUE(out.WriteVarint32Signed(-basis + delta));
135 values.push_back(-basis + delta); 135 values.push_back(-basis + delta);
136 } 136 }
137 } 137 }
138 138
139 courgette::SourceStream in; 139 courgette::SourceStream in;
140 in.Init(out); 140 in.Init(out);
141 141
142 for (size_t i = 0; i < values.size(); ++i) { 142 for (size_t i = 0; i < values.size(); ++i) {
143 int written_value = values[i]; 143 int written_value = values[i];
144 int32 datum; 144 int32_t datum;
145 bool can_read = in.ReadVarint32Signed(&datum); 145 bool can_read = in.ReadVarint32Signed(&datum);
146 EXPECT_TRUE(can_read); 146 EXPECT_TRUE(can_read);
147 EXPECT_EQ(written_value, datum); 147 EXPECT_EQ(written_value, datum);
148 } 148 }
149 149
150 EXPECT_TRUE(in.Empty()); 150 EXPECT_TRUE(in.Empty());
151 } 151 }
152 152
153 TEST(StreamsTest, StreamSetReadWrite) { 153 TEST(StreamsTest, StreamSetReadWrite) {
154 courgette::SinkStreamSet out; 154 courgette::SinkStreamSet out;
(...skipping 26 matching lines...) Expand all
181 EXPECT_TRUE(can_read_2); 181 EXPECT_TRUE(can_read_2);
182 EXPECT_TRUE(in.Empty()); 182 EXPECT_TRUE(in.Empty());
183 183
184 courgette::SourceStreamSet subset3; 184 courgette::SourceStreamSet subset3;
185 bool can_read_3 = in.ReadSet(&subset3); 185 bool can_read_3 = in.ReadSet(&subset3);
186 EXPECT_FALSE(can_read_3); 186 EXPECT_FALSE(can_read_3);
187 187
188 EXPECT_FALSE(subset1.Empty()); 188 EXPECT_FALSE(subset1.Empty());
189 EXPECT_FALSE(subset1.Empty()); 189 EXPECT_FALSE(subset1.Empty());
190 190
191 uint32 datum; 191 uint32_t datum;
192 EXPECT_TRUE(subset1.stream(3)->ReadVarint32(&datum)); 192 EXPECT_TRUE(subset1.stream(3)->ReadVarint32(&datum));
193 EXPECT_EQ(30000U, datum); 193 EXPECT_EQ(30000U, datum);
194 EXPECT_TRUE(subset1.stream(5)->ReadVarint32(&datum)); 194 EXPECT_TRUE(subset1.stream(5)->ReadVarint32(&datum));
195 EXPECT_EQ(50000U, datum); 195 EXPECT_EQ(50000U, datum);
196 EXPECT_TRUE(subset1.Empty()); 196 EXPECT_TRUE(subset1.Empty());
197 197
198 EXPECT_TRUE(subset2.stream(2)->ReadVarint32(&datum)); 198 EXPECT_TRUE(subset2.stream(2)->ReadVarint32(&datum));
199 EXPECT_EQ(20000U, datum); 199 EXPECT_EQ(20000U, datum);
200 EXPECT_TRUE(subset2.stream(6)->ReadVarint32(&datum)); 200 EXPECT_TRUE(subset2.stream(6)->ReadVarint32(&datum));
201 EXPECT_EQ(60000U, datum); 201 EXPECT_EQ(60000U, datum);
202 EXPECT_TRUE(subset2.Empty()); 202 EXPECT_TRUE(subset2.Empty());
203 } 203 }
OLDNEW
« no previous file with comments | « courgette/streams.cc ('k') | courgette/third_party/bsdiff.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698