Reduce code duplicates by using common function to verify mock function call count. Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
38 lines
1.3 KiB
C
38 lines
1.3 KiB
C
/*
|
|
* Copyright (c) 2023 Codecoup
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef MOCKS_UTIL_H_
|
|
#define MOCKS_UTIL_H_
|
|
|
|
#include <zephyr/types.h>
|
|
#include <zephyr/sys/util_macro.h>
|
|
#include <zephyr/ztest.h>
|
|
|
|
#define CHECK_EMPTY(_x) UTIL_BOOL(IS_EMPTY(_x))
|
|
#define COND_CODE_EMPTY(_x, _if_any_code, _else_code) \
|
|
COND_CODE_1(CHECK_EMPTY(_x), _if_any_code, _else_code)
|
|
#define IF_EMPTY(_a, _code) COND_CODE_EMPTY(_a, _code, ())
|
|
#define IF_NOT_EMPTY(_a, _code) COND_CODE_EMPTY(_a, (), _code)
|
|
|
|
#define expect_data(_func_name, _arg_name, _exp_data, _data, _len) \
|
|
IF_NOT_EMPTY(_exp_data, (expect_data_equal(_func_name, _arg_name, _exp_data, _data, _len);))
|
|
|
|
#define zexpect_call_count(_func_name, _expected, _actual) \
|
|
zexpect_equal(_expected, _actual, "'%s()' was called %u times, expected %u times", \
|
|
_func_name, _actual, _expected)
|
|
|
|
static inline void expect_data_equal(const char *func_name, const char *arg_name,
|
|
const uint8_t *expect, const uint8_t *data, size_t len)
|
|
{
|
|
for (size_t i = 0U; i < len; i++) {
|
|
zexpect_equal(expect[i], data[i],
|
|
"'%s()' was called with incorrect %s[%zu]=0x%02x != 0x%02x value",
|
|
func_name, arg_name, i, data[i], expect[i]);
|
|
}
|
|
}
|
|
|
|
#endif /* MOCKS_UTIL_H_ */
|