diff options
author | Aaron Massey <aaronmassey@google.com> | 2022-09-22 16:30:01 -0600 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-09-23 23:01:03 +0000 |
commit | 1c61b4c08df36674e31f437ad37cef0db03e2685 (patch) | |
tree | 2f0ec3714efa623f35bbbdaaeefcd4b48509b166 | |
parent | b0a345910ffad88662001923ebc3e549868ee5a4 (diff) | |
download | chrome-ec-1c61b4c08df36674e31f437ad37cef0db03e2685.tar.gz |
test: system_hibernate() paths
Verify all potential code paths in system_hibernate() call the
appropriate functions with correct values.
BRANCH=none
BUG=b:248106876
TEST=./twister --clobber -i -s zephyr/test/drivers/drivers.system
Signed-off-by: Aaron Massey <aaronmassey@google.com>
Change-Id: Ic7593c8cec8d7a9f552e0d75864d8e640d2bb038
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3914988
Reviewed-by: Wai-Hong Tam <waihong@google.com>
Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
-rw-r--r-- | zephyr/mock/include/mock/power.h | 4 | ||||
-rw-r--r-- | zephyr/shim/src/system.c | 2 | ||||
-rw-r--r-- | zephyr/test/drivers/system/src/system.c | 41 | ||||
-rw-r--r-- | zephyr/test/drivers/testcase.yaml | 1 |
4 files changed, 47 insertions, 1 deletions
diff --git a/zephyr/mock/include/mock/power.h b/zephyr/mock/include/mock/power.h index 9f04053241..9f7a0c451d 100644 --- a/zephyr/mock/include/mock/power.h +++ b/zephyr/mock/include/mock/power.h @@ -6,6 +6,10 @@ #ifndef ZEPHYR_TEST_MOCK_POWER_H #define ZEPHYR_TEST_MOCK_POWER_H +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + #include <zephyr/fff.h> #include "power.h" diff --git a/zephyr/shim/src/system.c b/zephyr/shim/src/system.c index a9cf544b97..b20607de59 100644 --- a/zephyr/shim/src/system.c +++ b/zephyr/shim/src/system.c @@ -130,7 +130,7 @@ int system_get_scratchpad(uint32_t *value) return 0; } -void system_hibernate(uint32_t seconds, uint32_t microseconds) +test_mockable void system_hibernate(uint32_t seconds, uint32_t microseconds) { const struct device *sys_dev = device_get_binding("CROS_SYSTEM"); int err; diff --git a/zephyr/test/drivers/system/src/system.c b/zephyr/test/drivers/system/src/system.c index 6fe35330c4..bf290bbfde 100644 --- a/zephyr/test/drivers/system/src/system.c +++ b/zephyr/test/drivers/system/src/system.c @@ -10,7 +10,11 @@ #include "host_command.h" #include "panic.h" #include "system.h" +#include "test/drivers/stubs.h" +#include "test/drivers/test_mocks.h" #include "test/drivers/test_state.h" +#include "test/drivers/utils.h" +#include "mock/power.h" /* System Host Commands */ @@ -39,6 +43,43 @@ static void system_before_after(void *data) system_clear_reset_flags(-1); } +ZTEST(system, test_system_enter_hibernate__at_g3) +{ + set_ac_enabled(false); + test_set_chipset_to_g3(); + + /* Reset after set to g3 */ + chipset_force_shutdown_fake.call_count = 0; + + /* Arbitrary Args */ + system_enter_hibernate(0x12, 0x34); + zassert_equal(chipset_force_shutdown_fake.call_count, 0); + zassert_equal(system_hibernate_fake.call_count, 1); +} + +ZTEST(system, test_system_enter_hibernate__ac_on) +{ + test_set_chipset_to_s0(); + set_ac_enabled(true); + + /* Arbitrary Args */ + system_enter_hibernate(0x12, 0x34); + zassert_equal(chipset_force_shutdown_fake.call_count, 0); +} + +ZTEST(system, test_system_enter_hibernate__at_s0) +{ + test_set_chipset_to_s0(); + set_ac_enabled(false); + + /* Arbitrary Args */ + system_enter_hibernate(0x12, 0x34); + + zassert_equal(chipset_force_shutdown_fake.call_count, 1); + zassert_equal(chipset_force_shutdown_fake.arg0_val, + CHIPSET_SHUTDOWN_CONSOLE_CMD); +} + ZTEST(system, test_get_program_memory_addr_bad_args) { zassert_equal(get_program_memory_addr(-1), INVALID_ADDR); diff --git a/zephyr/test/drivers/testcase.yaml b/zephyr/test/drivers/testcase.yaml index 281b804f7a..bb76aede4f 100644 --- a/zephyr/test/drivers/testcase.yaml +++ b/zephyr/test/drivers/testcase.yaml @@ -68,6 +68,7 @@ tests: drivers.system: extra_configs: - CONFIG_LINK_TEST_SUITE_SYSTEM=y + - CONFIG_POWER_SEQUENCE_MOCK=y drivers.system_board_version_cbi: extra_configs: - CONFIG_LINK_TEST_SUITE_SYSTEM=y |