1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
/* Copyright (c) 2014, Linaro Limited
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <odp.h>
#include "odp_cunit_common.h"
#include "pool.h"
static int pool_name_number = 1;
static const int default_buffer_size = 1500;
static const int default_buffer_num = 1000;
static void pool_create_destroy(odp_pool_param_t *params)
{
odp_pool_t pool;
char pool_name[ODP_POOL_NAME_LEN];
snprintf(pool_name, sizeof(pool_name),
"test_pool-%d", pool_name_number++);
pool = odp_pool_create(pool_name, params);
CU_ASSERT_FATAL(pool != ODP_POOL_INVALID);
CU_ASSERT(odp_pool_to_u64(pool) !=
odp_pool_to_u64(ODP_POOL_INVALID));
CU_ASSERT(odp_pool_destroy(pool) == 0);
}
void pool_test_create_destroy_buffer(void)
{
odp_pool_param_t params = {
.buf = {
.size = default_buffer_size,
.align = ODP_CACHE_LINE_SIZE,
.num = default_buffer_num,
},
.type = ODP_POOL_BUFFER,
};
pool_create_destroy(¶ms);
}
void pool_test_create_destroy_packet(void)
{
odp_pool_param_t params = {
.pkt = {
.seg_len = 0,
.len = default_buffer_size,
.num = default_buffer_num,
},
.type = ODP_POOL_PACKET,
};
pool_create_destroy(¶ms);
}
void pool_test_create_destroy_timeout(void)
{
odp_pool_param_t params = {
.tmo = {
.num = default_buffer_num,
},
.type = ODP_POOL_TIMEOUT,
};
pool_create_destroy(¶ms);
}
void pool_test_lookup_info_print(void)
{
odp_pool_t pool;
const char pool_name[] = "pool_for_lookup_test";
odp_pool_info_t info;
odp_pool_param_t params = {
.buf = {
.size = default_buffer_size,
.align = ODP_CACHE_LINE_SIZE,
.num = default_buffer_num,
},
.type = ODP_POOL_BUFFER,
};
pool = odp_pool_create(pool_name, ¶ms);
CU_ASSERT_FATAL(pool != ODP_POOL_INVALID);
pool = odp_pool_lookup(pool_name);
CU_ASSERT_FATAL(pool != ODP_POOL_INVALID);
CU_ASSERT_FATAL(odp_pool_info(pool, &info) == 0);
CU_ASSERT(strncmp(pool_name, info.name, sizeof(pool_name)) == 0);
CU_ASSERT(params.buf.size <= info.params.buf.size);
CU_ASSERT(params.buf.align <= info.params.buf.align);
CU_ASSERT(params.buf.num <= info.params.buf.num);
CU_ASSERT(params.type == info.params.type);
odp_pool_print(pool);
CU_ASSERT(odp_pool_destroy(pool) == 0);
}
odp_testinfo_t pool_suite[] = {
ODP_TEST_INFO(pool_test_create_destroy_buffer),
ODP_TEST_INFO(pool_test_create_destroy_packet),
ODP_TEST_INFO(pool_test_create_destroy_timeout),
ODP_TEST_INFO(pool_test_lookup_info_print),
ODP_TEST_INFO_NULL,
};
odp_suiteinfo_t pool_suites[] = {
{ .pName = "Pool tests",
.pTests = pool_suite,
},
ODP_SUITE_INFO_NULL,
};
int pool_main(void)
{
return odp_cunit_run(pool_suites);
}
|