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*437bfbebSnyanmisakaint 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