diff options
-rw-r--r-- | common/power_button.c | 4 | ||||
-rw-r--r-- | include/power_button.h | 2 | ||||
-rw-r--r-- | zephyr/test/drivers/default/CMakeLists.txt | 1 | ||||
-rw-r--r-- | zephyr/test/drivers/default/src/console_cmd/power_button.c | 34 |
4 files changed, 38 insertions, 3 deletions
diff --git a/common/power_button.c b/common/power_button.c index 6aaa293631..42b165ec8f 100644 --- a/common/power_button.c +++ b/common/power_button.c @@ -200,7 +200,7 @@ void power_button_interrupt(enum gpio_signal signal) power_button.debounce_us); } -void power_button_simulate_press(int duration) +void power_button_simulate_press(unsigned int duration) { ccprintf("Simulating %d ms %s press.\n", duration, power_button.name); simulate_power_pressed = 1; @@ -226,7 +226,7 @@ static int command_powerbtn(int argc, const char **argv) if (argc > 1) { ms = strtoi(argv[1], &e, 0); - if (*e) + if (*e || ms < 0) return EC_ERROR_PARAM1; } diff --git a/include/power_button.h b/include/power_button.h index 3c2eabf13e..eecc65e948 100644 --- a/include/power_button.h +++ b/include/power_button.h @@ -74,6 +74,6 @@ void board_pwrbtn_to_pch(int level); * * @param duration Simulated power button press duration in ms. */ -void power_button_simulate_press(int duration); +void power_button_simulate_press(unsigned int duration); #endif /* __CROS_EC_POWER_BUTTON_H */ diff --git a/zephyr/test/drivers/default/CMakeLists.txt b/zephyr/test/drivers/default/CMakeLists.txt index 3f0e6ec0ec..3725c27ebd 100644 --- a/zephyr/test/drivers/default/CMakeLists.txt +++ b/zephyr/test/drivers/default/CMakeLists.txt @@ -31,6 +31,7 @@ target_sources(app PRIVATE src/console_cmd/panic_output.c src/console_cmd/port80.c src/console_cmd/powerindebug.c + src/console_cmd/power_button.c src/console_cmd/rw.c src/console_cmd/sleeptimeout.c src/console_cmd/tcpci_dump.c diff --git a/zephyr/test/drivers/default/src/console_cmd/power_button.c b/zephyr/test/drivers/default/src/console_cmd/power_button.c new file mode 100644 index 0000000000..713b3c4966 --- /dev/null +++ b/zephyr/test/drivers/default/src/console_cmd/power_button.c @@ -0,0 +1,34 @@ +/* Copyright 2022 The ChromiumOS Authors. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include <zephyr/ztest.h> +#include <console.h> + +ZTEST_SUITE(console_cmd_power_button, NULL, NULL, NULL, NULL, NULL); + +ZTEST_USER(console_cmd_power_button, test_return_ok) +{ + zassert_ok(shell_execute_cmd(get_ec_shell(), "powerbtn"), NULL); +} + +ZTEST_USER(console_cmd_power_button, test_negative_delay) +{ + int rv; + + rv = shell_execute_cmd(get_ec_shell(), "powerbtn -1"); + + zassert_not_equal(rv, EC_SUCCESS, + "Command should error on negative delay"); +} + +ZTEST_USER(console_cmd_power_button, test_invalid_arg) +{ + int rv; + + rv = shell_execute_cmd(get_ec_shell(), "powerbtn foo"); + + zassert_equal(rv, EC_ERROR_PARAM1, "Expected %d, but got %d", + EC_ERROR_PARAM1, rv); +} |