summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Massey <aaronmassey@google.com>2022-09-22 16:30:01 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-23 23:01:03 +0000
commit1c61b4c08df36674e31f437ad37cef0db03e2685 (patch)
tree2f0ec3714efa623f35bbbdaaeefcd4b48509b166
parentb0a345910ffad88662001923ebc3e549868ee5a4 (diff)
downloadchrome-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.h4
-rw-r--r--zephyr/shim/src/system.c2
-rw-r--r--zephyr/test/drivers/system/src/system.c41
-rw-r--r--zephyr/test/drivers/testcase.yaml1
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