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