TEST_ASSERT

TEST_ASSERT(expression, fail_msg, ...)
TEST_ASSERT_FATAL(expression, fail_msg, ...)

Asserts that the specified condition is true. If the expression is true, nothing gets reported. fail_msg will be printed out if the expression is false. The expression argument is mandatory; the rest are optional. The fail_msg argument is a printf format string which specifies how the remaining arguments are parsed.

TEST_ASSERT_FATAL() causes the current test case to be aborted, if expression fails.

Arguments

ArgumentsDescription
expressionCondition being tested. If it fails, test is considered a failure, and a message is printed out.
fail_msgPointer to C string that contains a format string that follows the same specifications as format in printf.
...Depending on the format string, the function may expect either a sequence of additional arguments to be used to replace a format specifier in the format string or a variable arguments list. va_list is a special type defined in in stdarg.h.

Returned values

None

Notes

While console_printf, with its well understood formatting options in C, is more convenient and easy on the eyes than the raw output of console_write, the associated code size is considerably larger.

Example

Example #1:

TEST_CASE(config_test_insert)
{
    int rc;

    rc = conf_register(&config_test_handler);
    TEST_ASSERT(rc == 0);
}

Example #2:

TEST_CASE(nffs_test_unlink)
{
    int rc;

    ....
    
    rc = nffs_format(nffs_area_descs);
    TEST_ASSERT_FATAL(rc == 0);

    ....
}

Example #3:


static int cbmem_test_case_1_walk(struct cbmem *cbmem, struct cbmem_entry_hdr *hdr, void *arg) { .... rc = cbmem_read(cbmem, hdr, &actual, 0, sizeof(actual)); TEST_ASSERT_FATAL(rc == 1, "Couldn't read 1 byte from cbmem"); TEST_ASSERT_FATAL(actual == expected, "Actual doesn't equal expected (%d = %d)", actual, expected); .... }