/* SPDX-License-Identifier: GPL-2.0-only */ #include "../console/init.c" #include <console/console.h> #include <stdlib.h> #include <string.h> #include <stdint.h> #include <tests/test.h> struct log_combinations_t { int log_lvl; int msg_lvl; int behavior; } combinations[] = { {.log_lvl = -1, .msg_lvl = BIOS_ERR, .behavior = CONSOLE_LOG_NONE}, {.log_lvl = -1, .msg_lvl = BIOS_SPEW, .behavior = CONSOLE_LOG_NONE}, {.log_lvl = BIOS_DEBUG, .msg_lvl = BIOS_ERR, .behavior = CONSOLE_LOG_ALL}, {.log_lvl = BIOS_DEBUG, .msg_lvl = BIOS_DEBUG, .behavior = CONSOLE_LOG_ALL}, {.log_lvl = BIOS_DEBUG, .msg_lvl = BIOS_SPEW, .behavior = CONSOLE_LOG_NONE}, {.log_lvl = BIOS_SPEW, .msg_lvl = BIOS_ERR, .behavior = CONSOLE_LOG_ALL}, {.log_lvl = BIOS_SPEW, .msg_lvl = BIOS_DEBUG, .behavior = CONSOLE_LOG_ALL}, {.log_lvl = BIOS_SPEW, .msg_lvl = BIOS_SPEW, .behavior = CONSOLE_LOG_ALL}, #if CONFIG(CONSOLE_CBMEM) {.log_lvl = BIOS_WARNING, .msg_lvl = BIOS_ERR, .behavior = CONSOLE_LOG_ALL}, {.log_lvl = BIOS_WARNING, .msg_lvl = BIOS_DEBUG, .behavior = CONSOLE_LOG_FAST}, {.log_lvl = BIOS_WARNING, .msg_lvl = BIOS_SPEW, .behavior = CONSOLE_LOG_NONE}, #else {.log_lvl = BIOS_WARNING, .msg_lvl = BIOS_ERR, .behavior = CONSOLE_LOG_ALL}, {.log_lvl = BIOS_WARNING, .msg_lvl = BIOS_DEBUG, .behavior = CONSOLE_LOG_NONE}, {.log_lvl = BIOS_WARNING, .msg_lvl = BIOS_SPEW, .behavior = CONSOLE_LOG_NONE}, #endif }; static void test_console_log_level(void **state) { for (int i = 0; i < ARRAY_SIZE(combinations); i++) { console_loglevel = combinations[i].log_lvl; assert_int_equal(combinations[i].behavior, console_log_level(combinations[i].msg_lvl)); } } static int setup_console_log_level(void **state) { console_inited = 1; return 0; } static int teardown_console_log_level(void **state) { console_inited = 0; return 0; } int main(void) { const struct CMUnitTest tests[] = { cmocka_unit_test_setup_teardown(test_console_log_level, setup_console_log_level, teardown_console_log_level), }; return cb_run_group_tests(tests, NULL, NULL); }