|
4 | 4 | using namespace dsplib;
|
5 | 5 |
|
6 | 6 | //-------------------------------------------------------------------------------------------------
|
7 |
| -TEST(Allocator, EqualPointer) { |
| 7 | +TEST(Allocator, Alloc) { |
| 8 | + pool_reset(); |
| 9 | + |
| 10 | + auto x1 = pool_alloc(100); |
| 11 | + ASSERT_EQ(pool_info().size(), 1); |
| 12 | + ASSERT_EQ(pool_info().at(0).used, true); |
| 13 | + ASSERT_EQ(pool_info().at(0).size, 512); |
| 14 | + pool_free(x1); |
| 15 | + |
| 16 | + auto x2 = pool_alloc(120); |
| 17 | + ASSERT_EQ(pool_info().size(), 1); |
| 18 | + ASSERT_EQ(pool_info().at(0).used, true); |
| 19 | + ASSERT_EQ(pool_info().at(0).size, 512); |
| 20 | + pool_free(x2); |
| 21 | + |
| 22 | + ASSERT_TRUE(x1 == x2); |
| 23 | + ASSERT_EQ(pool_info().size(), 1); |
| 24 | + ASSERT_EQ(pool_info().at(0).used, false); |
| 25 | + ASSERT_EQ(pool_info().at(0).size, 512); |
| 26 | +} |
| 27 | + |
| 28 | +//------------------------------------------------------------------------------------------------- |
| 29 | +TEST(Allocator, Vector) { |
| 30 | + pool_reset(); |
| 31 | + uintptr_t p1, p2; |
| 32 | + |
8 | 33 | {
|
9 |
| - pool_reset(); |
10 |
| - |
11 |
| - auto x1 = pool_alloc(100); |
12 |
| - ASSERT_EQ(pool_info().size(), 1); |
13 |
| - ASSERT_EQ(pool_info().at(0).used, true); |
14 |
| - ASSERT_EQ(pool_info().at(0).size, 512); |
15 |
| - pool_free(x1); |
16 |
| - |
17 |
| - auto x2 = pool_alloc(120); |
18 |
| - ASSERT_EQ(pool_info().size(), 1); |
19 |
| - ASSERT_EQ(pool_info().at(0).used, true); |
20 |
| - ASSERT_EQ(pool_info().at(0).size, 512); |
21 |
| - pool_free(x2); |
22 |
| - |
23 |
| - ASSERT_TRUE(x1 == x2); |
24 |
| - ASSERT_EQ(pool_info().size(), 1); |
25 |
| - ASSERT_EQ(pool_info().at(0).used, false); |
26 |
| - ASSERT_EQ(pool_info().at(0).size, 512); |
| 34 | + std::vector<double, pool_allocator<double>> x1(10); |
| 35 | + x1[0] = 0; |
| 36 | + p1 = uintptr_t(x1.data()); |
| 37 | + x1.resize(0); |
| 38 | + x1.shrink_to_fit(); |
27 | 39 | }
|
28 | 40 |
|
29 | 41 | {
|
30 |
| - pool_reset(); |
31 |
| - double *p1, *p2; |
32 |
| - |
33 |
| - { |
34 |
| - std::vector<double, pool_allocator<double>> x(100); |
35 |
| - p1 = x.data(); |
36 |
| - } |
37 |
| - |
38 |
| - { |
39 |
| - std::vector<double, pool_allocator<double>> x(102); |
40 |
| - p2 = x.data(); |
41 |
| - } |
42 |
| - |
43 |
| - ASSERT_TRUE(p1 == p2); |
44 |
| - ASSERT_EQ(pool_info().size(), 1); |
45 |
| - ASSERT_EQ(pool_info().at(0).used, false); |
46 |
| - ASSERT_EQ(pool_info().at(0).size, 1024); |
| 42 | + std::vector<double, pool_allocator<double>> x2(10); |
| 43 | + x2[0] = 1; |
| 44 | + p2 = uintptr_t(x2.data()); |
| 45 | + x2.resize(0); |
| 46 | + x2.shrink_to_fit(); |
47 | 47 | }
|
| 48 | + |
| 49 | + ASSERT_TRUE(p1 == p2); |
| 50 | + ASSERT_EQ(pool_info().size(), 1); |
| 51 | + ASSERT_EQ(pool_info().at(0).used, false); |
| 52 | + ASSERT_EQ(pool_info().at(0).size, 512); |
48 | 53 | }
|
0 commit comments