@@ -36,294 +36,154 @@ TEST_CLASS(BinaryBufferTest)
36
36
37
37
TEST_METHOD (BinaryBufferBasicTest)
38
38
{
39
-
40
39
LogLine ();
41
40
42
41
// check buffer allocation
43
42
{
44
- LogLine ();
45
43
CBinaryBuffer buffer;
46
-
47
- LogLine ();
48
44
buffer.SetCount (100 );
49
45
50
- LogLine ();
51
46
Assert::IsTrue (buffer.OwnsBuffer ());
52
-
53
- LogLine ();
54
47
Assert::IsTrue (buffer.GetCount () == 100 );
55
-
56
- LogLine ();
57
48
Assert::IsTrue (buffer.CheckCount (150 ));
58
-
59
- LogLine ();
60
49
Assert::IsTrue (buffer.GetCount () == 150 );
61
50
}
62
51
63
52
// binary buffer with data + md5 + sha1 + operator[]
64
53
{
65
- LogLine ();
66
54
unsigned char data[5 ] = {0xAA , 0xBB , 0xCC , 0xDD , 0xEE };
67
55
CBinaryBuffer buffer (data, sizeof (data));
68
56
69
- LogLine ();
70
57
Assert::IsTrue (!buffer.OwnsBuffer ());
71
-
72
- LogLine ();
73
58
Assert::IsTrue (buffer.GetCount () == sizeof (data));
74
-
75
- LogLine ();
76
59
Assert::IsTrue (buffer.GetData () != nullptr );
77
-
78
- LogLine ();
79
60
Assert::IsTrue (buffer[0 ] == 0xAA );
80
-
81
- LogLine ();
82
61
Assert::IsTrue (buffer[1 ] == 0xBB );
83
-
84
- LogLine ();
85
62
Assert::IsTrue (buffer[2 ] == 0xCC );
86
-
87
- LogLine ();
88
63
Assert::IsTrue (buffer[3 ] == 0xDD );
89
-
90
- LogLine ();
91
64
Assert::IsTrue (buffer[4 ] == 0xEE );
92
65
93
- LogLine ();
94
66
unsigned char md5Result[16 ] = {
95
67
0x37 , 0xD3 , 0xA1 , 0x9F , 0xF4 , 0x69 , 0x7F , 0x91 , 0xFD , 0xC4 , 0xC3 , 0xA0 , 0x69 , 0x0A , 0xD8 , 0xC5 };
96
68
CBinaryBuffer md5;
97
-
98
- LogLine ();
99
69
buffer.GetMD5 (md5);
100
-
101
- LogLine ();
102
70
Assert::IsTrue (md5.GetCount () == sizeof (md5Result));
103
-
104
- LogLine ();
105
71
Assert::IsTrue (!memcmp (md5.GetData (), md5Result, sizeof (md5Result)));
106
72
107
- LogLine ();
108
73
unsigned char sha1Result[20 ] = {0xD5 , 0xB4 , 0x12 , 0x31 , 0x9A , 0x66 , 0xBE , 0x9D , 0xCB , 0x40 ,
109
74
0xEA , 0x0E , 0xE0 , 0x9B , 0xB7 , 0x62 , 0x71 , 0xC5 , 0xE7 , 0x48 };
110
75
CBinaryBuffer sha1;
111
-
112
- LogLine ();
113
76
buffer.GetSHA1 (sha1);
114
-
115
- LogLine ();
116
77
Assert::IsTrue (sha1.GetCount () == sizeof (sha1Result));
117
-
118
- LogLine ();
119
78
Assert::IsTrue (!memcmp (sha1.GetData (), sha1Result, sizeof (sha1Result)));
120
79
121
- LogLine ();
122
80
buffer.ZeroMe ();
123
-
124
- LogLine ();
125
81
Assert::IsTrue (buffer[0 ] == 0x00 );
126
-
127
- LogLine ();
128
82
Assert::IsTrue (buffer[1 ] == 0x00 );
129
-
130
- LogLine ();
131
83
Assert::IsTrue (buffer[2 ] == 0x00 );
132
-
133
- LogLine ();
134
84
Assert::IsTrue (buffer[3 ] == 0x00 );
135
-
136
- LogLine ();
137
85
Assert::IsTrue (buffer[4 ] == 0x00 );
138
86
139
87
// try [] with an invalid index
140
88
bool gotException = false ;
141
89
try
142
90
{
143
- LogLine ();
144
91
buffer[5 ];
145
92
}
146
93
catch (...)
147
94
{
148
- LogLine ();
149
95
gotException = true ;
150
96
}
151
97
152
- LogLine ();
153
98
Assert::IsTrue (gotException);
154
99
}
155
100
156
101
// check copy constructor of a binary buffer
157
102
{
158
- LogLine ();
159
- CBinaryBuffer buffer;
160
103
161
- LogLine () ;
104
+ CBinaryBuffer buffer ;
162
105
buffer.SetCount (100 );
163
-
164
- LogLine ();
165
106
buffer[0 ] = 0xFF ;
166
107
167
- LogLine ();
168
108
CBinaryBuffer sha1;
169
-
170
- LogLine ();
171
109
buffer.GetSHA1 (sha1);
172
110
173
- LogLine ();
174
111
CBinaryBuffer buffer2 (buffer); // copy constructor (buffer owns its memory)
175
-
176
- LogLine ();
177
112
Assert::IsTrue (buffer2.OwnsBuffer ());
178
-
179
- LogLine ();
180
113
Assert::IsTrue (buffer2.GetCount () == 100 );
181
-
182
- LogLine ();
183
114
Assert::IsTrue (buffer2[0 ] == 0xFF );
184
115
185
- LogLine ();
186
116
CBinaryBuffer sha1ToCheck;
187
-
188
- LogLine ();
189
117
buffer2.GetSHA1 (sha1ToCheck);
190
118
191
- LogLine ();
192
119
Assert::IsTrue (!memcmp (sha1.GetData (), sha1ToCheck.GetData (), sha1.GetCount ()));
193
120
}
194
121
195
122
{
196
- LogLine ();
197
123
unsigned char data[5 ] = {0xAA , 0xBB , 0xCC , 0xDD , 0xEE };
198
124
CBinaryBuffer buffer (data, sizeof (data));
199
-
200
- LogLine ();
201
125
CBinaryBuffer buffer2 (buffer); // copy constructor (buffer doesn't own its memory)
202
-
203
- LogLine ();
204
126
Assert::IsTrue (!buffer2.OwnsBuffer ());
205
-
206
- LogLine ();
207
127
Assert::IsTrue (buffer2.GetCount () == 5 );
208
128
}
209
129
210
130
// check operator= of a binary buffer
211
131
{
212
- LogLine ();
213
132
CBinaryBuffer buffer;
214
-
215
- LogLine ();
216
133
buffer.SetCount (100 );
217
-
218
- LogLine ();
219
134
bool ownsMemory = buffer.OwnsBuffer ();
220
135
221
- LogLine ();
222
136
size_t size = buffer.GetCount ();
223
-
224
- LogLine ();
225
137
BYTE* pointer = buffer.GetData ();
226
138
227
- LogLine ();
228
139
CBinaryBuffer buffer2;
229
-
230
- LogLine ();
231
140
buffer2 = buffer; // operator=
232
141
233
- LogLine ();
234
142
Assert::IsTrue (buffer2.OwnsBuffer () == ownsMemory);
235
-
236
- LogLine ();
237
143
Assert::IsTrue (buffer2.GetCount () == size);
238
-
239
- LogLine ();
240
144
Assert::IsTrue (buffer2.GetData () != pointer);
241
-
242
- LogLine ();
243
145
Assert::IsTrue (buffer.OwnsBuffer () == true );
244
-
245
- LogLine ();
246
146
Assert::IsTrue (buffer.GetCount () == size);
247
-
248
- LogLine ();
249
147
Assert::IsTrue (buffer.GetData () != nullptr );
250
148
}
251
149
252
150
// check move constructor / move assignment operator
253
151
{
254
- LogLine ();
255
- CBinaryBuffer buffer;
256
152
257
- LogLine () ;
153
+ CBinaryBuffer buffer ;
258
154
buffer.SetCount (100 );
259
-
260
- LogLine ();
261
155
bool ownsMemory = buffer.OwnsBuffer ();
262
-
263
- LogLine ();
264
156
size_t size = buffer.GetCount ();
265
157
266
- LogLine ();
267
158
BYTE* pointer = buffer.GetData ();
268
159
269
160
typedef std::function<CBinaryBuffer (CBinaryBuffer)> Functor;
270
161
271
- LogLine ();
272
162
Functor functor = [](CBinaryBuffer buffer) { return buffer; };
273
163
274
- LogLine ();
275
164
CBinaryBuffer buffer1;
276
-
277
- LogLine ();
278
165
buffer1 = functor (buffer); // copy constructor is called first then move assignment operator
279
-
280
- LogLine ();
281
166
Assert::IsTrue (buffer1.OwnsBuffer () == ownsMemory);
282
-
283
- LogLine ();
284
167
Assert::IsTrue (buffer1.GetCount () == size);
285
-
286
- LogLine ();
287
168
Assert::IsTrue (buffer1.GetData () != pointer);
288
-
289
- LogLine ();
290
169
Assert::IsTrue (buffer.OwnsBuffer () == ownsMemory);
291
-
292
- LogLine ();
293
170
Assert::IsTrue (buffer.GetCount () == size);
294
-
295
- LogLine ();
296
171
Assert::IsTrue (buffer.GetData () == pointer);
297
172
298
- LogLine ();
299
173
ownsMemory = buffer1.OwnsBuffer (); // buffer1 should own its memory
300
-
301
- LogLine ();
302
174
size = buffer1.GetCount ();
303
-
304
- LogLine ();
305
175
pointer = buffer1.GetData ();
306
176
307
- LogLine ();
308
177
CBinaryBuffer buffer2 = std::move (buffer1); // move constructor
309
-
310
- LogLine ();
311
178
Assert::IsTrue (buffer2.OwnsBuffer () == ownsMemory);
312
-
313
- LogLine ();
314
179
Assert::IsTrue (buffer2.GetCount () == size);
315
-
316
- LogLine ();
317
180
Assert::IsTrue (buffer2.GetData () == pointer);
318
-
319
- LogLine ();
320
- Assert::IsTrue (buffer1.OwnsBuffer () == true );
321
-
322
- LogLine ();
181
+ Assert::IsTrue (buffer1.OwnsBuffer () == true ); // check move ctor
323
182
Assert::IsTrue (buffer1.GetCount () == 0 );
324
183
325
184
LogLine ();
326
185
Assert::IsTrue (buffer1.GetData () == nullptr );
186
+ LogLine ();
327
187
}
328
188
}
329
189
};
0 commit comments