diff options
author | Aaron Massey <aaronmassey@google.com> | 2022-10-11 14:20:22 -0600 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-10-12 17:14:55 +0000 |
commit | da73cce845f019e5f60f3814ec5014cd8a5a4918 (patch) | |
tree | 636ceb240dc30f670aca439808944362f6af9d8c /zephyr/test/drivers/power_host_sleep | |
parent | 638aeeb863582aa3571101fda0d01d7613276518 (diff) | |
download | chrome-ec-da73cce845f019e5f60f3814ec5014cd8a5a4918.tar.gz |
test: EC_CMD_HOST_SLEEP_EVENT s3 suspend
Add a test that verifies the EC_CMD_HOST_SLEEP_EVENT host command may be
invoked with HOST_SLEEP_EVENT_S3_SUSPEND host sleep event and
subsequently propagates the appropriate sleep context to the
chip-specific host sleep event handler.
BRANCH=none
BUG=b:252887178
TEST=twister -s zephyr/test/drivers/drivers.power_host_sleep
Signed-off-by: Aaron Massey <aaronmassey@google.com>
Change-Id: If58665b5ef33c028443cd55082f2a211199e1002
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3947525
Reviewed-by: Sam Hurst <shurst@google.com>
Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
Diffstat (limited to 'zephyr/test/drivers/power_host_sleep')
-rw-r--r-- | zephyr/test/drivers/power_host_sleep/src/test_power_host_sleep.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/zephyr/test/drivers/power_host_sleep/src/test_power_host_sleep.c b/zephyr/test/drivers/power_host_sleep/src/test_power_host_sleep.c index e494cb4b13..fb63c298ed 100644 --- a/zephyr/test/drivers/power_host_sleep/src/test_power_host_sleep.c +++ b/zephyr/test/drivers/power_host_sleep/src/test_power_host_sleep.c @@ -74,5 +74,33 @@ ZTEST_USER(power_host_sleep, test_non_existent_sleep_event_v1__bad_event) zassert_equal(r.resume_response.sleep_transitions, 0); } +ZTEST_USER(power_host_sleep, test_non_existent_sleep_event_v1__s3_suspend) +{ + struct ec_params_host_sleep_event_v1 p = { + .sleep_event = HOST_SLEEP_EVENT_S3_SUSPEND, + }; + struct ec_response_host_sleep_event_v1 r; + struct host_cmd_handler_args args = + BUILD_HOST_COMMAND(EC_CMD_HOST_SLEEP_EVENT, 1, r, p); + + /* Set m/lsb of uint16_t to check for type coercion errors */ + p.suspend_params.sleep_timeout_ms = BIT(15) + 1; + + power_chipset_handle_host_sleep_event_fake.custom_fake = + _test_power_chipset_handle_host_sleep_event; + + zassert_ok(host_command_process(&args)); + zassert_equal(args.response_size, 0); + zassert_equal(power_chipset_handle_host_sleep_event_fake.call_count, 1); + zassert_equal(power_chipset_handle_host_sleep_event_fake.arg0_val, + p.sleep_event); + + /* + * Verify sleep timeout propagated to chip-specific handler to use. + */ + zassert_equal(test_saved_context.sleep_timeout_ms, + p.suspend_params.sleep_timeout_ms); +} + ZTEST_SUITE(power_host_sleep, drivers_predicate_post_main, NULL, power_host_sleep_before_after, power_host_sleep_before_after, NULL); |