1 /*++
2 Copyright (c) 2006 Microsoft Corporation
3
4 Module Name:
5
6 buffer.cpp
7
8 Abstract:
9
10 Test buffers.
11
12 Author:
13
14 Leonardo de Moura (leonardo) 2011-03-03.
15
16 Revision History:
17
18 --*/
19 #include "util/ptr_scoped_buffer.h"
20
21 typedef std::pair<int, int> point;
22
23 template class ptr_scoped_buffer<point>;
24
tst1()25 static void tst1() {
26 ptr_scoped_buffer<point> b;
27 ENSURE(b.empty());
28 b.push_back(alloc(point, 10, 20));
29 ENSURE(!b.empty());
30 point * p1 = alloc(point, 30, 20);
31 b.push_back(p1);
32 ENSURE(b.get(1) == p1);
33 b.push_back(alloc(point, 40, 20));
34 ENSURE(b.size() == 3);
35 b.pop_back();
36 ENSURE(b.get(0) != p1);
37 ENSURE(b.get(1) == p1);
38 point * p2 = alloc(point, 30, 20);
39 ENSURE(b.get(0) != p2);
40 b.set(0, p2);
41 ENSURE(b.get(0) == p2);
42 ENSURE(b.size() == 2);
43 b.push_back(alloc(point, 40, 40));
44 }
45
tst_buffer()46 void tst_buffer() {
47 tst1();
48 }
49