xref: /rockchip-linux_mpp/osal/test/mpp_mem_pool_test.c (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 OR MIT */
2*437bfbebSnyanmisaka /*
3*437bfbebSnyanmisaka  * Copyright (c) 2015 Rockchip Electronics Co., Ltd.
4*437bfbebSnyanmisaka  */
5*437bfbebSnyanmisaka 
6*437bfbebSnyanmisaka #define MODULE_TAG "mpp_mem_pool_test"
7*437bfbebSnyanmisaka 
8*437bfbebSnyanmisaka #include <stdlib.h>
9*437bfbebSnyanmisaka 
10*437bfbebSnyanmisaka #include "mpp_log.h"
11*437bfbebSnyanmisaka #include "mpp_mem_pool.h"
12*437bfbebSnyanmisaka 
13*437bfbebSnyanmisaka #define MPP_MEM_POOL_TEST_SIZE      1024
14*437bfbebSnyanmisaka #define MPP_MEM_POOL_TEST_COUNT     20
15*437bfbebSnyanmisaka 
main()16*437bfbebSnyanmisaka int main()
17*437bfbebSnyanmisaka {
18*437bfbebSnyanmisaka     MppMemPool pool = NULL;
19*437bfbebSnyanmisaka     size_t size = MPP_MEM_POOL_TEST_SIZE;
20*437bfbebSnyanmisaka     void *p [MPP_MEM_POOL_TEST_COUNT];
21*437bfbebSnyanmisaka     rk_u32 i;
22*437bfbebSnyanmisaka 
23*437bfbebSnyanmisaka     mpp_log("mpp_mem_pool_test start\n");
24*437bfbebSnyanmisaka 
25*437bfbebSnyanmisaka     pool = mpp_mem_pool_init_f(MODULE_TAG, size);
26*437bfbebSnyanmisaka     if (NULL == pool) {
27*437bfbebSnyanmisaka         mpp_err("mpp_mem_pool_test mpp_mem_pool_init failed\n");
28*437bfbebSnyanmisaka         goto mpp_mem_pool_test_failed;
29*437bfbebSnyanmisaka     }
30*437bfbebSnyanmisaka 
31*437bfbebSnyanmisaka     for (i = 0; i < MPP_MEM_POOL_TEST_COUNT; i++) {
32*437bfbebSnyanmisaka         p[i] = mpp_mem_pool_get_f(pool);
33*437bfbebSnyanmisaka         if (!p[i]) {
34*437bfbebSnyanmisaka             mpp_err("mpp_mem_pool_test mpp_mem_pool_get_f failed\n");
35*437bfbebSnyanmisaka             goto mpp_mem_pool_test_failed;
36*437bfbebSnyanmisaka         }
37*437bfbebSnyanmisaka     }
38*437bfbebSnyanmisaka 
39*437bfbebSnyanmisaka     for (i = 0; i < MPP_MEM_POOL_TEST_COUNT / 2; i++) {
40*437bfbebSnyanmisaka         if (p[i]) {
41*437bfbebSnyanmisaka             mpp_mem_pool_put_f(pool, p[i]);
42*437bfbebSnyanmisaka             p[i] = NULL;
43*437bfbebSnyanmisaka         }
44*437bfbebSnyanmisaka     }
45*437bfbebSnyanmisaka 
46*437bfbebSnyanmisaka     for (i = 0; i < MPP_MEM_POOL_TEST_COUNT / 4; i++) {
47*437bfbebSnyanmisaka         p[i] = mpp_mem_pool_get_f(pool);
48*437bfbebSnyanmisaka         if (!p[i]) {
49*437bfbebSnyanmisaka             mpp_err("mpp_mem_pool_test mpp_mem_pool_get_f failed\n");
50*437bfbebSnyanmisaka             goto mpp_mem_pool_test_failed;
51*437bfbebSnyanmisaka         }
52*437bfbebSnyanmisaka     }
53*437bfbebSnyanmisaka 
54*437bfbebSnyanmisaka     for (i = 0; i < MPP_MEM_POOL_TEST_COUNT; i++) {
55*437bfbebSnyanmisaka         if (p[i]) {
56*437bfbebSnyanmisaka             mpp_mem_pool_put_f(pool, p[i]);
57*437bfbebSnyanmisaka             p[i] = NULL;
58*437bfbebSnyanmisaka         }
59*437bfbebSnyanmisaka     }
60*437bfbebSnyanmisaka 
61*437bfbebSnyanmisaka     mpp_log("mpp_mem_pool_test success\n");
62*437bfbebSnyanmisaka     return MPP_OK;
63*437bfbebSnyanmisaka 
64*437bfbebSnyanmisaka mpp_mem_pool_test_failed:
65*437bfbebSnyanmisaka     mpp_log("mpp_mem_pool_test failed\n");
66*437bfbebSnyanmisaka     return MPP_NOK;
67*437bfbebSnyanmisaka }
68*437bfbebSnyanmisaka 
69