tests: util: PART_OF_ARRAY, IS_ARRAY_ELEMENT, ARRAY_INDEX, ..
Add tests for `PART_OF_ARRAY()`, `IS_ARRAY_ELEMENT()`, `ARRAY_INDEX()`, and `ARRAY_INDEX_FLOOR()`. Signed-off-by: Christopher Friedt <cfriedt@fb.com>
This commit is contained in:
parent
cda7e31de1
commit
2e6e09acac
2 changed files with 99 additions and 0 deletions
|
@ -106,6 +106,26 @@ ZTEST(util_cxx, test_mixing_GET_ARG_and_FOR_EACH) {
|
||||||
run_mixing_GET_ARG_and_FOR_EACH();
|
run_mixing_GET_ARG_and_FOR_EACH();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ZTEST(util_cxx, test_IS_ARRAY_ELEMENT)
|
||||||
|
{
|
||||||
|
run_IS_ARRAY_ELEMENT();
|
||||||
|
}
|
||||||
|
|
||||||
|
ZTEST(util_cxx, test_ARRAY_INDEX)
|
||||||
|
{
|
||||||
|
run_ARRAY_INDEX();
|
||||||
|
}
|
||||||
|
|
||||||
|
ZTEST(util_cxx, test_PART_OF_ARRAY)
|
||||||
|
{
|
||||||
|
run_PART_OF_ARRAY();
|
||||||
|
}
|
||||||
|
|
||||||
|
ZTEST(util_cxx, test_ARRAY_INDEX_FLOOR)
|
||||||
|
{
|
||||||
|
run_ARRAY_INDEX_FLOOR();
|
||||||
|
}
|
||||||
|
|
||||||
ZTEST_SUITE(util_cxx, NULL, NULL, NULL, NULL, NULL);
|
ZTEST_SUITE(util_cxx, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
#if __cplusplus
|
#if __cplusplus
|
||||||
|
@ -204,4 +224,24 @@ ZTEST(util_cc, test_mixing_GET_ARG_and_FOR_EACH) {
|
||||||
run_mixing_GET_ARG_and_FOR_EACH();
|
run_mixing_GET_ARG_and_FOR_EACH();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ZTEST(util_cc, test_IS_ARRAY_ELEMENT)
|
||||||
|
{
|
||||||
|
run_IS_ARRAY_ELEMENT();
|
||||||
|
}
|
||||||
|
|
||||||
|
ZTEST(util_cc, test_ARRAY_INDEX)
|
||||||
|
{
|
||||||
|
run_ARRAY_INDEX();
|
||||||
|
}
|
||||||
|
|
||||||
|
ZTEST(util_cc, test_PART_OF_ARRAY)
|
||||||
|
{
|
||||||
|
run_PART_OF_ARRAY();
|
||||||
|
}
|
||||||
|
|
||||||
|
ZTEST(util_cc, test_ARRAY_INDEX_FLOOR)
|
||||||
|
{
|
||||||
|
run_ARRAY_INDEX_FLOOR();
|
||||||
|
}
|
||||||
|
|
||||||
ZTEST_SUITE(util_cc, NULL, NULL, NULL, NULL, NULL);
|
ZTEST_SUITE(util_cc, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
|
@ -467,3 +467,62 @@ void run_mixing_GET_ARG_and_FOR_EACH(void)
|
||||||
zassert_equal(a[3], 4);
|
zassert_equal(a[3], 4);
|
||||||
zassert_equal(a[4], 5);
|
zassert_equal(a[4], 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void run_IS_ARRAY_ELEMENT(void)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
size_t array[3];
|
||||||
|
uint8_t *const alias = (uint8_t *)array;
|
||||||
|
|
||||||
|
zassert_false(IS_ARRAY_ELEMENT(array, &array[-1]));
|
||||||
|
zassert_false(IS_ARRAY_ELEMENT(array, &array[ARRAY_SIZE(array)]));
|
||||||
|
zassert_false(IS_ARRAY_ELEMENT(array, &alias[1]));
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_SIZE(array); ++i) {
|
||||||
|
zassert_true(IS_ARRAY_ELEMENT(array, &array[i]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void run_ARRAY_INDEX(void)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
size_t array[] = {0, 1, 2, 3};
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_SIZE(array); ++i) {
|
||||||
|
zassert_equal(array[ARRAY_INDEX(array, &array[i])], i);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ARRAY_INDEX(array, &alias[1]) asserts with CONFIG_ASSERT=y */
|
||||||
|
}
|
||||||
|
|
||||||
|
void run_PART_OF_ARRAY(void)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
size_t array[3];
|
||||||
|
uint8_t *const alias = (uint8_t *)array;
|
||||||
|
|
||||||
|
ARG_UNUSED(i);
|
||||||
|
ARG_UNUSED(alias);
|
||||||
|
|
||||||
|
zassert_false(PART_OF_ARRAY(array, &array[-1]));
|
||||||
|
zassert_false(PART_OF_ARRAY(array, &array[ARRAY_SIZE(array)]));
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_SIZE(array); ++i) {
|
||||||
|
zassert_true(PART_OF_ARRAY(array, &array[i]));
|
||||||
|
}
|
||||||
|
|
||||||
|
zassert_true(PART_OF_ARRAY(array, &alias[1]));
|
||||||
|
}
|
||||||
|
|
||||||
|
void run_ARRAY_INDEX_FLOOR(void)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
size_t array[] = {0, 1, 2, 3};
|
||||||
|
uint8_t *const alias = (uint8_t *)array;
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_SIZE(array); ++i) {
|
||||||
|
zassert_equal(array[ARRAY_INDEX_FLOOR(array, &array[i])], i);
|
||||||
|
}
|
||||||
|
|
||||||
|
zassert_equal(array[ARRAY_INDEX_FLOOR(array, &alias[1])], 0);
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue