@@ -107,12 +107,13 @@ const uint8_t Data[] = {
107
107
108
108
TEST (FuzzedDataProvider, ConsumeBytes) {
109
109
FuzzedDataProvider DataProv (Data, sizeof (Data));
110
- EXPECT_EQ (std::vector<char >(1 , 0x8A ), DataProv.ConsumeBytes <char >(1 ));
110
+ EXPECT_EQ (std::vector<unsigned char >(1 , 0x8A ),
111
+ DataProv.ConsumeBytes <unsigned char >(1 ));
111
112
EXPECT_EQ (std::vector<uint8_t >(
112
113
{0x19 , 0x0D , 0x44 , 0x37 , 0x0D , 0x38 , 0x5E , 0x9B , 0xAA , 0xF3 }),
113
114
DataProv.ConsumeBytes <uint8_t >(10 ));
114
115
115
- std::vector<unsigned char > UChars = DataProv.ConsumeBytes (24 );
116
+ std::vector<unsigned char > UChars = DataProv.ConsumeBytes < unsigned char > (24 );
116
117
EXPECT_EQ (std::vector<unsigned char >({0xDA , 0xAA , 0x88 , 0xF2 , 0x9B , 0x6C ,
117
118
0xBA , 0xBE , 0xB1 , 0xF2 , 0xCF , 0x13 ,
118
119
0xB8 , 0xAC , 0x1A , 0x7F , 0x1C , 0xC9 ,
@@ -123,6 +124,28 @@ TEST(FuzzedDataProvider, ConsumeBytes) {
123
124
DataProv.ConsumeBytes <signed char >(31337 ));
124
125
}
125
126
127
+ TEST (FuzzedDataProvider, ConsumeBytesWithTerminator) {
128
+ FuzzedDataProvider DataProv (Data, sizeof (Data));
129
+ EXPECT_EQ (std::vector<unsigned char >({0x8A , 0x00 }),
130
+ DataProv.ConsumeBytesWithTerminator <unsigned char >(1 ));
131
+ EXPECT_EQ (std::vector<uint8_t >({0x19 , 0x0D , 0x44 , 0x37 , 0x0D , 0x38 , 0x5E ,
132
+ 0x9B , 0xAA , 0xF3 , 111 }),
133
+ DataProv.ConsumeBytesWithTerminator <uint8_t >(10 , 111 ));
134
+
135
+ std::vector<unsigned char > UChars =
136
+ DataProv.ConsumeBytesWithTerminator <unsigned char >(24 );
137
+ EXPECT_EQ (std::vector<unsigned char >(
138
+ {0xDA , 0xAA , 0x88 , 0xF2 , 0x9B , 0x6C , 0xBA , 0xBE , 0xB1 ,
139
+ 0xF2 , 0xCF , 0x13 , 0xB8 , 0xAC , 0x1A , 0x7F , 0x1C , 0xC9 ,
140
+ 0x90 , 0xD0 , 0xD9 , 0x5C , 0x42 , 0xB3 , 0x00 }),
141
+ UChars);
142
+
143
+ std::vector<signed char > Expected (Data + 1 + 10 + 24 , Data + sizeof (Data));
144
+ Expected.push_back (65 );
145
+ EXPECT_EQ (Expected,
146
+ DataProv.ConsumeBytesWithTerminator <signed char >(31337 , 65 ));
147
+ }
148
+
126
149
TEST (FuzzedDataProvider, ConsumeBytesAsString) {
127
150
FuzzedDataProvider DataProv (Data, sizeof (Data));
128
151
EXPECT_EQ (std::string (" \x8A\x19\x0D\x44\x37\x0D\x38\x5E\x9B\xAA\xF3\xDA " ),
@@ -182,14 +205,15 @@ TEST(FuzzedDataProvider, ConsumeRemainingBytes) {
182
205
{
183
206
FuzzedDataProvider DataProv (Data, sizeof (Data));
184
207
EXPECT_EQ (std::vector<uint8_t >(Data, Data + sizeof (Data)),
185
- DataProv.ConsumeRemainingBytes ());
186
- EXPECT_EQ (std::vector<uint8_t >(), DataProv.ConsumeRemainingBytes ());
208
+ DataProv.ConsumeRemainingBytes <uint8_t >());
209
+ EXPECT_EQ (std::vector<uint8_t >(),
210
+ DataProv.ConsumeRemainingBytes <uint8_t >());
187
211
}
188
212
189
213
{
190
214
FuzzedDataProvider DataProv (Data, sizeof (Data));
191
215
EXPECT_EQ (std::vector<uint8_t >(Data, Data + 123 ),
192
- DataProv.ConsumeBytes (123 ));
216
+ DataProv.ConsumeBytes < uint8_t > (123 ));
193
217
EXPECT_EQ (std::vector<char >(Data + 123 , Data + sizeof (Data)),
194
218
DataProv.ConsumeRemainingBytes <char >());
195
219
}
@@ -206,7 +230,7 @@ TEST(FuzzedDataProvider, ConsumeRemainingBytesAsString) {
206
230
{
207
231
FuzzedDataProvider DataProv (Data, sizeof (Data));
208
232
EXPECT_EQ (std::vector<uint8_t >(Data, Data + 123 ),
209
- DataProv.ConsumeBytes (123 ));
233
+ DataProv.ConsumeBytes < uint8_t > (123 ));
210
234
EXPECT_EQ (std::string (Data + 123 , Data + sizeof (Data)),
211
235
DataProv.ConsumeRemainingBytesAsString ());
212
236
}
@@ -265,9 +289,17 @@ TEST(FuzzedDataProvider, PickValueInArray) {
265
289
EXPECT_EQ (uint8_t (0x69 ), DataProv.PickValueInArray (Data));
266
290
EXPECT_EQ (uint8_t (0xD6 ), DataProv.PickValueInArray (Data));
267
291
292
+ EXPECT_EQ (uint32_t (777 ), DataProv.PickValueInArray <uint32_t >({1337 , 777 }));
293
+ EXPECT_EQ (uint32_t (777 ), DataProv.PickValueInArray <uint32_t >({1337 , 777 }));
294
+ EXPECT_EQ (uint64_t (1337 ), DataProv.PickValueInArray <uint64_t >({1337 , 777 }));
295
+ EXPECT_EQ (size_t (777 ), DataProv.PickValueInArray <size_t >({1337 , 777 }));
296
+ EXPECT_EQ (int16_t (1337 ), DataProv.PickValueInArray <int16_t >({1337 , 777 }));
297
+ EXPECT_EQ (int32_t (777 ), DataProv.PickValueInArray <int32_t >({1337 , 777 }));
298
+ EXPECT_EQ (int64_t (777 ), DataProv.PickValueInArray <int64_t >({1337 , 777 }));
299
+
268
300
// Exhaust the buffer.
269
301
auto String = DataProv.ConsumeBytesAsString (31337 );
270
- EXPECT_EQ (size_t (1007 ), String.length ());
302
+ EXPECT_EQ (size_t (1000 ), String.length ());
271
303
EXPECT_EQ (uint8_t (0x8A ), DataProv.PickValueInArray (Data));
272
304
}
273
305
@@ -306,12 +338,13 @@ TEST(FuzzedDataProvider, remaining_bytes) {
306
338
EXPECT_EQ (size_t (1024 ), DataProv.remaining_bytes ());
307
339
EXPECT_EQ (false , DataProv.ConsumeBool ());
308
340
EXPECT_EQ (size_t (1024 - 1 ), DataProv.remaining_bytes ());
309
- EXPECT_EQ (std::vector<uint8_t >(Data, Data + 8 ), DataProv.ConsumeBytes (8 ));
341
+ EXPECT_EQ (std::vector<uint8_t >(Data, Data + 8 ),
342
+ DataProv.ConsumeBytes <uint8_t >(8 ));
310
343
EXPECT_EQ (size_t (1024 - 1 - 8 ), DataProv.remaining_bytes ());
311
344
312
345
// Exhaust the buffer.
313
346
EXPECT_EQ (std::vector<uint8_t >(Data + 8 , Data + sizeof (Data) - 1 ),
314
- DataProv.ConsumeRemainingBytes ());
347
+ DataProv.ConsumeRemainingBytes < uint8_t > ());
315
348
EXPECT_EQ (size_t (0 ), DataProv.remaining_bytes ());
316
349
}
317
350
0 commit comments