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