tests: convert util test to a unit test
Merge tests/misc/util with existing util unit test. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
parent
c1038de6e8
commit
2051ad1846
5 changed files with 85 additions and 123 deletions
|
@ -71,10 +71,94 @@ static void test_u8_to_dec(void)
|
|||
"Length of converted value using 0 byte buffer isn't 0");
|
||||
}
|
||||
|
||||
#define TEST_DEFINE_1 1
|
||||
#define TEST_DEFINE_0 0
|
||||
|
||||
void test_COND_CODE_1(void)
|
||||
{
|
||||
/* Test validates that expected code has been injected. Failure would
|
||||
* be seen in compilation (lack of variable or ununsed variable.
|
||||
*/
|
||||
COND_CODE_1(1, (u32_t x0 = 1;), (u32_t y0;))
|
||||
zassert_true((x0 == 1), NULL);
|
||||
|
||||
COND_CODE_1(NOT_EXISTING_DEFINE, (u32_t x1 = 1;), (u32_t y1 = 1;))
|
||||
zassert_true((y1 == 1), NULL);
|
||||
|
||||
COND_CODE_1(TEST_DEFINE_1, (u32_t x2 = 1;), (u32_t y2 = 1;))
|
||||
zassert_true((x2 == 1), NULL);
|
||||
|
||||
COND_CODE_1(2, (u32_t x3 = 1;), (u32_t y3 = 1;))
|
||||
zassert_true((y3 == 1), NULL);
|
||||
}
|
||||
|
||||
void test_COND_CODE_0(void)
|
||||
{
|
||||
/* Test validates that expected code has been injected. Failure would
|
||||
* be seen in compilation (lack of variable or ununsed variable.
|
||||
*/
|
||||
COND_CODE_0(0, (u32_t x0 = 1;), (u32_t y0;))
|
||||
zassert_true((x0 == 1), NULL);
|
||||
|
||||
COND_CODE_0(NOT_EXISTING_DEFINE, (u32_t x1 = 1;), (u32_t y1 = 1;))
|
||||
zassert_true((y1 == 1), NULL);
|
||||
|
||||
COND_CODE_0(TEST_DEFINE_0, (u32_t x2 = 1;), (u32_t y2 = 1;))
|
||||
zassert_true((x2 == 1), NULL);
|
||||
|
||||
COND_CODE_0(2, (u32_t x3 = 1;), (u32_t y3 = 1;))
|
||||
zassert_true((y3 == 1), NULL);
|
||||
}
|
||||
|
||||
void test_UTIL_LISTIFY(void)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
#define INC(x, _) \
|
||||
do { \
|
||||
i += x; \
|
||||
} while (0);
|
||||
|
||||
#define DEFINE(x, _) int a##x;
|
||||
#define MARK_UNUSED(x, _) ARG_UNUSED(a##x);
|
||||
|
||||
UTIL_LISTIFY(4, DEFINE, _)
|
||||
UTIL_LISTIFY(4, MARK_UNUSED, _)
|
||||
|
||||
UTIL_LISTIFY(4, INC, _)
|
||||
|
||||
zassert_equal(i, 0 + 1 + 2 + 3, NULL);
|
||||
}
|
||||
|
||||
static int inc_func(void)
|
||||
{
|
||||
static int a = 1;
|
||||
|
||||
return a++;
|
||||
}
|
||||
|
||||
/* Test checks if @ref Z_MAX and @ref Z_MIN return correct result and perform
|
||||
* single evaluation of input arguments.
|
||||
*/
|
||||
static void test_z_max_z_min(void)
|
||||
{
|
||||
zassert_equal(Z_MAX(inc_func(), 0), 1, "Unexpected macro result");
|
||||
/* Z_MAX should have call inc_func only once */
|
||||
zassert_equal(inc_func(), 2, "Unexpected return value");
|
||||
|
||||
zassert_equal(Z_MIN(inc_func(), 2), 2, "Unexpected macro result");
|
||||
/* Z_MIN should have call inc_func only once */
|
||||
zassert_equal(inc_func(), 4, "Unexpected return value");
|
||||
}
|
||||
|
||||
void test_main(void)
|
||||
{
|
||||
ztest_test_suite(test_lib_sys_util_tests,
|
||||
ztest_unit_test(test_u8_to_dec)
|
||||
ztest_unit_test(test_u8_to_dec),
|
||||
ztest_unit_test(test_COND_CODE_1),
|
||||
ztest_unit_test(test_COND_CODE_0),
|
||||
ztest_unit_test(test_UTIL_LISTIFY),
|
||||
ztest_unit_test(test_z_max_z_min)
|
||||
);
|
||||
|
||||
ztest_run_test_suite(test_lib_sys_util_tests);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue