From 99956af7f3a4e14962b25aeb96e7dde483fb0f39 Mon Sep 17 00:00:00 2001 From: Pawel Piatkowski Date: Mon, 11 Dec 2023 15:10:58 +0100 Subject: [PATCH] ledctl: add tests to verify log_level and log_path Add function to print configuration for test_params option. Signed-off-by: Pawel Piatkowski --- src/ledctl/ledctl.c | 32 ++++++++++++++++++++++- tests/ledctl/parameters_test.py | 46 +++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 1 deletion(-) diff --git a/src/ledctl/ledctl.c b/src/ledctl/ledctl.c index f6755f21..6fb79449 100644 --- a/src/ledctl/ledctl.c +++ b/src/ledctl/ledctl.c @@ -1040,6 +1040,34 @@ static led_status_t _init_ledctl_conf(void) return ledmon_init_conf(&conf, LED_LOG_LEVEL_WARNING, LEDCTL_DEF_LOG_FILE); } +static const char *getLogLevelName(enum led_log_level_enum log_level) +{ + switch (log_level) { + case LED_LOG_LEVEL_UNDEF: + return "UNDEF"; + case LED_LOG_LEVEL_QUIET: + return "QUIET"; + case LED_LOG_LEVEL_ERROR: + return "ERROR"; + case LED_LOG_LEVEL_WARNING: + return "WARNING"; + case LED_LOG_LEVEL_INFO: + return "INFO"; + case LED_LOG_LEVEL_DEBUG: + return "DEBUG"; + case LED_LOG_LEVEL_ALL: + return "ALL"; + default: + return "UNDEF"; + } +} + +static void print_configuration(void) +{ + printf("Log level: %s\n", getLogLevelName(conf.log_level)); + printf("Log path: %s\n", conf.log_path); +} + /** * @brief Propagate the configuration setting to the library settings */ @@ -1127,8 +1155,10 @@ int main(int argc, char *argv[]) _unset_unused_options(); status = _cmdline_parse(argc, argv, &req); - if (status != LED_STATUS_SUCCESS || test_params) + if (status != LED_STATUS_SUCCESS || test_params) { + print_configuration(); exit(status); + } status = log_open(&conf); if (status != LED_STATUS_SUCCESS) diff --git a/tests/ledctl/parameters_test.py b/tests/ledctl/parameters_test.py index e1bf7df5..f55ab161 100644 --- a/tests/ledctl/parameters_test.py +++ b/tests/ledctl/parameters_test.py @@ -50,3 +50,49 @@ def test_ibpi_parameters_are_valid_short_test_flag(ledctl_binary, valid_ibpi_com cmd = LedctlCmd(ledctl_binary) cmd.is_test_flag_enabled() cmd.run_ledctl_cmd(valid_ibpi_commands.split()) + +@pytest.mark.parametrize("valid_warning_level_commands", [ + "--list-controllers --log-level=warning -T", + "-P -n vmd --warning -T", + "normal=/dev/nvme0n1 --listed-only --log-level=warning -T", + "normal=/dev/nvme0n1 --listed-only --warning -T", +],) +def test_parameters_log_level_warning(ledctl_binary, valid_warning_level_commands): + cmd = LedctlCmd(ledctl_binary) + cmd.is_test_flag_enabled() + output = cmd.run_ledctl_cmd_decode(valid_warning_level_commands.split()) + assert "Log level: WARNING" in output + +@pytest.mark.parametrize("valid_debug_level_commands", [ + "--list-controllers --log-level=debug -T", + "-P -n vmd --debug -T", + "normal=/dev/nvme0n1 --listed-only --log-level=debug -T", + "normal=/dev/nvme0n1 --listed-only --debug -T", +],) +def test_parameters_log_level_debug(ledctl_binary, valid_debug_level_commands): + cmd = LedctlCmd(ledctl_binary) + cmd.is_test_flag_enabled() + output = cmd.run_ledctl_cmd_decode(valid_debug_level_commands.split()) + assert "Log level: DEBUG" in output + +@pytest.mark.parametrize("valid_all_level_commands", [ + "--list-controllers --log-level=all -T", + "-P -n vmd --all -T", + "normal=/dev/nvme0n1 --listed-only --log-level=all -T", + "normal=/dev/nvme0n1 --listed-only --all -T", +],) +def test_parameters_log_level_all(ledctl_binary, valid_all_level_commands): + cmd = LedctlCmd(ledctl_binary) + cmd.is_test_flag_enabled() + output = cmd.run_ledctl_cmd_decode(valid_all_level_commands.split()) + assert "Log level: ALL" in output + +@pytest.mark.parametrize("log_path_commands", [ + "--list-controllers --log=/root/test.log -T", + "normal=/dev/nvme0n1 --listed-only -l /root/test.log -T", +],) +def test_parameters_log_path(ledctl_binary, log_path_commands): + cmd = LedctlCmd(ledctl_binary) + cmd.is_test_flag_enabled() + output = cmd.run_ledctl_cmd_decode(log_path_commands.split()) + assert "Log path: /root/test.log" in output \ No newline at end of file