blob: ac4df1671790e088f7aed04296f0c23e732c912b [file] [log] [blame]
/*
* Copyright (c) 2022 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/kernel.h>
#include "host_mocks/assert.h"
DEFINE_FAKE_VALUE_FUNC(bool, mock_check_if_assert_expected);
void assert_print(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
vprintk(fmt, ap);
va_end(ap);
}
void assert_post_action(const char *file, unsigned int line)
{
/* ztest_test_pass()/ztest_test_fail() are used to stop the execution
* If this is an unexpected assert (i.e. not following expect_assert())
* calling mock_check_if_assert_expected() will return 'false' as
* a default return value
*/
if (mock_check_if_assert_expected() == true) {
printk("Assertion expected as part of a test case.\n");
/* Mark the test as passed and stop execution:
* Needed in the passing scenario to prevent undefined behavior after hitting the
* assert. In real builds (non-UT), the system will be halted by the assert.
*/
ztest_test_pass();
} else {
/* Mark the test as failed and stop execution */
ztest_test_fail();
}
}