| /* |
| * Copyright (c) 2016 Intel Corporation |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <ztest.h> |
| #include "test_mpool.h" |
| |
| #define TEST_SIZE ((BLK_SIZE_MAX>>2)+1) |
| |
| extern struct k_mem_pool mpool1; |
| |
| /*test cases*/ |
| void test_mpool_alloc_size_roundup(void) |
| { |
| struct k_mem_block block[BLK_NUM_MAX], block_fail; |
| |
| /** |
| * TESTPOINT: When an application issues a request for a memory block, |
| * the memory pool first determines the size of the smallest block that |
| * will satisfy the request |
| */ |
| for (int i = 0; i < BLK_NUM_MAX; i++) { |
| /*request a size for the mpool to round up to "BLK_SIZE_MAX"*/ |
| zassert_true(k_mem_pool_alloc(&mpool1, &block[i], TEST_SIZE, |
| K_NO_WAIT) == 0, NULL); |
| } |
| /*verify consequently no more blocks available*/ |
| zassert_true(k_mem_pool_alloc(&mpool1, &block_fail, BLK_SIZE_MIN, |
| K_NO_WAIT) == -ENOMEM, NULL); |
| |
| /*test case tear down*/ |
| for (int i = 0; i < BLK_NUM_MAX; i++) { |
| k_mem_pool_free(&block[i]); |
| } |
| } |