Mercurial > dovecot > core-2.2
annotate src/lib/test-mempool.c @ 22664:fea53c2725c0
director: Fix director_max_parallel_moves/kicks type
Should be uint, not time.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 09 Nov 2017 12:24:16 +0200 |
parents | df6a5fba9405 |
children | cb108f786fb4 |
rev | line source |
---|---|
22139
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
1 /* Copyright (c) 2017 Dovecot authors, see the included COPYING file */ |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
2 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
3 #include "test-lib.h" |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
4 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
5 #if SIZEOF_VOID_P == 8 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
6 typedef char uint32max_array_t[4294967295]; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
7 #else |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
8 typedef char uint32max_array_t[65535]; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
9 #endif |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
10 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
11 extern struct pool test_pool; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
12 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
13 static void test_mempool_overflow(void) |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
14 { |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
15 test_begin("mempool overflow"); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
16 #if SIZEOF_VOID_P == 8 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
17 uint32max_array_t *m1 = p_new(&test_pool, uint32max_array_t, 4294967297ULL); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
18 test_assert(m1 == POINTER_CAST(18446744073709551615ULL)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
19 char *m2 = p_new(&test_pool, char, 18446744073709551615ULL); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
20 test_assert(m2 == POINTER_CAST(18446744073709551615ULL)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
21 uint32_t *m3 = p_new(&test_pool, uint32_t, 4611686018427387903ULL); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
22 test_assert(m3 == POINTER_CAST(18446744073709551612ULL)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
23 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
24 /* grow */ |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
25 test_assert(p_realloc_type(&test_pool, m1, uint32max_array_t, 4294967296ULL, 4294967297ULL) == POINTER_CAST(18446744073709551615ULL)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
26 test_assert(p_realloc_type(&test_pool, m2, char, 18446744073709551614ULL, 18446744073709551615ULL) == POINTER_CAST(18446744073709551615ULL)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
27 test_assert(p_realloc_type(&test_pool, m3, uint32_t, 4611686018427387902ULL, 4611686018427387903ULL) == POINTER_CAST(18446744073709551612ULL)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
28 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
29 /* shrink */ |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
30 test_assert(p_realloc_type(&test_pool, m1, uint32max_array_t, 4294967297ULL, 4294967296ULL) == POINTER_CAST(18446744069414584320ULL)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
31 test_assert(p_realloc_type(&test_pool, m2, char, 18446744073709551615ULL, 18446744073709551614ULL) == POINTER_CAST(18446744073709551614ULL)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
32 test_assert(p_realloc_type(&test_pool, m3, uint32_t, 4611686018427387903ULL, 4611686018427387902ULL) == POINTER_CAST(18446744073709551608ULL)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
33 #elif SIZEOF_VOID_P == 4 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
34 uint32max_array_t *m1 = p_new(&test_pool, uint32max_array_t, 65537); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
35 test_assert(m1 == POINTER_CAST(4294967295U)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
36 char *m2 = p_new(&test_pool, char, 4294967295U); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
37 test_assert(m2 == POINTER_CAST(4294967295U)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
38 uint32_t *m3 = p_new(&test_pool, uint32_t, 1073741823U); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
39 test_assert(m3 == POINTER_CAST(4294967292U)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
40 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
41 /* grow */ |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
42 test_assert(p_realloc_type(&test_pool, m1, uint32max_array_t, 65536, 65537) == POINTER_CAST(4294967295U)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
43 test_assert(p_realloc_type(&test_pool, m2, char, 4294967294U, 4294967295U) == POINTER_CAST(4294967295U)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
44 test_assert(p_realloc_type(&test_pool, m3, uint32_t, 1073741822U, 1073741823U) == POINTER_CAST(4294967292U)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
45 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
46 /* shrink */ |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
47 test_assert(p_realloc_type(&test_pool, m1, uint32max_array_t, 65537, 65536) == POINTER_CAST(4294901760U)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
48 test_assert(p_realloc_type(&test_pool, m2, char, 4294967295U, 4294967294U) == POINTER_CAST(4294967294U)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
49 test_assert(p_realloc_type(&test_pool, m3, uint32_t, 1073741823U, 1073741822U) == POINTER_CAST(4294967288U)); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
50 #else |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
51 # error unsupported pointer size |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
52 #endif |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
53 test_end(); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
54 } |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
55 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
56 enum fatal_test_state fatal_mempool(unsigned int stage) |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
57 { |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
58 static uint32max_array_t *m1; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
59 static uint32_t *m2; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
60 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
61 #if SIZEOF_VOID_P == 8 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
62 switch(stage) { |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
63 case 0: |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
64 test_begin("fatal mempool overflow"); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
65 m1 = p_new(&test_pool, uint32max_array_t, 4294967298ULL); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
66 return FATAL_TEST_FAILURE; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
67 case 1: |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
68 m2 = p_new(&test_pool, uint32_t, 4611686018427387904ULL); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
69 return FATAL_TEST_FAILURE; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
70 case 2: /* grow */ |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
71 m1 = p_realloc_type(&test_pool, m1, uint32max_array_t, 4294967297ULL, 4294967298ULL); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
72 return FATAL_TEST_FAILURE; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
73 case 3: |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
74 m2 = p_realloc_type(&test_pool, m2, uint32_t, 4611686018427387903ULL, 4611686018427387904ULL); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
75 return FATAL_TEST_FAILURE; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
76 case 4: /* shrink */ |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
77 m1 = p_realloc_type(&test_pool, m1, uint32max_array_t, 4294967298ULL, 4294967297ULL); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
78 return FATAL_TEST_FAILURE; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
79 case 5: |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
80 m2 = p_realloc_type(&test_pool, m2, uint32_t, 4611686018427387904ULL, 4611686018427387903ULL); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
81 return FATAL_TEST_FAILURE; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
82 } |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
83 #elif SIZEOF_VOID_P == 4 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
84 switch(stage) { |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
85 case 0: |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
86 test_begin("fatal mempool overflow"); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
87 m1 = p_new(&test_pool, uint32max_array_t, 65538); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
88 return FATAL_TEST_FAILURE; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
89 case 1: |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
90 m2 = p_new(&test_pool, uint32_t, 1073741824U); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
91 return FATAL_TEST_FAILURE; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
92 case 2: /* grow */ |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
93 m1 = p_realloc_type(&test_pool, m1, uint32max_array_t, 65537, 65538); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
94 return FATAL_TEST_FAILURE; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
95 case 3: |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
96 m2 = p_realloc_type(&test_pool, m2, uint32_t, 1073741823U, 1073741824U); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
97 return FATAL_TEST_FAILURE; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
98 case 4: /* shrink */ |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
99 m1 = p_realloc_type(&test_pool, m1, uint32max_array_t, 65538, 65537); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
100 return FATAL_TEST_FAILURE; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
101 case 5: |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
102 m2 = p_realloc_type(&test_pool, m2, uint32_t, 1073741824U, 1073741823U); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
103 return FATAL_TEST_FAILURE; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
104 } |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
105 #else |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
106 # error unsupported pointer size |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
107 #endif |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
108 test_end(); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
109 return FATAL_TEST_FINISHED; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
110 } |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
111 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
112 static const char *pool_test_get_name(pool_t pool ATTR_UNUSED) { return "test"; } |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
113 static void pool_test_ref(pool_t pool ATTR_UNUSED) { } |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
114 static void pool_test_unref(pool_t *pool) { *pool = NULL; } |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
115 static void *pool_test_malloc(pool_t pool ATTR_UNUSED, size_t size) { return POINTER_CAST(size); } |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
116 static void pool_test_free(pool_t pool ATTR_UNUSED, void *mem ATTR_UNUSED) { } |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
117 static void *pool_test_realloc(pool_t pool ATTR_UNUSED, void *mem ATTR_UNUSED, |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
118 size_t old_size ATTR_UNUSED, size_t new_size) { |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
119 return POINTER_CAST(new_size); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
120 } |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
121 static void pool_test_clear(pool_t pool ATTR_UNUSED) { } |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
122 static size_t pool_test_get_max_easy_alloc_size(pool_t pool ATTR_UNUSED) { return 12345; } |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
123 static const struct pool_vfuncs test_pool_vfuncs = { |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
124 pool_test_get_name, |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
125 pool_test_ref, |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
126 pool_test_unref, |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
127 pool_test_malloc, |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
128 pool_test_free, |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
129 pool_test_realloc, |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
130 pool_test_clear, |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
131 pool_test_get_max_easy_alloc_size |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
132 }; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
133 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
134 struct pool test_pool = { |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
135 .v = &test_pool_vfuncs, |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
136 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
137 .alloconly_pool = TRUE, |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
138 .datastack_pool = FALSE, |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
139 }; |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
140 |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
141 void test_mempool(void) |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
142 { |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
143 test_mempool_overflow(); |
df6a5fba9405
lib: Add test-mempool unit test.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff
changeset
|
144 } |