diff options
author | Keith Short <keithshort@chromium.org> | 2022-08-19 11:14:32 -0600 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-08-24 20:00:32 +0000 |
commit | eae48ee95b3ddbb8bfafcbf45bcce4a95e0b3ffe (patch) | |
tree | 6bb35263581c44343a33ef1b8d9b6bf8d977bd67 | |
parent | a87700f931255322ba3f7667ef6f642cb97b6599 (diff) | |
download | chrome-ec-eae48ee95b3ddbb8bfafcbf45bcce4a95e0b3ffe.tar.gz |
zephyr test: Add test for EC_CMD_HOST_EVENT_SET_SMI_MASK
Add a test for the success path of EC_CMD_HOST_EVENT_SET_SMI_MASK.
BUG=b:236161113
BRANCH=none
TEST=./twister -T zephyr/test/drivers/ -s drivers.default
Signed-off-by: Keith Short <keithshort@chromium.org>
Change-Id: I40fbd8c0d341a0b0484d733d75bfa32d7ea769d6
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3846275
Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
Reviewed-by: Fabio Baltieri <fabiobaltieri@google.com>
-rw-r--r-- | zephyr/test/drivers/default/src/host_cmd/host_event_commands_deprecated.c | 52 |
1 files changed, 48 insertions, 4 deletions
diff --git a/zephyr/test/drivers/default/src/host_cmd/host_event_commands_deprecated.c b/zephyr/test/drivers/default/src/host_cmd/host_event_commands_deprecated.c index f5b8e7d166..5329bd7c55 100644 --- a/zephyr/test/drivers/default/src/host_cmd/host_event_commands_deprecated.c +++ b/zephyr/test/drivers/default/src/host_cmd/host_event_commands_deprecated.c @@ -10,7 +10,7 @@ #include "test/drivers/test_state.h" #include "test/drivers/utils.h" -#define HOST_EVENT_WAKE_MASK_VAL EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) +#define HOST_EVENT_TEST_MASK_VAL EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) static void host_event_get_wake_mask_helper(struct ec_response_host_event_mask *r) @@ -68,14 +68,14 @@ ZTEST_USER(host_cmd_host_event_commands, test_host_event_set_wake_mask) /* Default mask is expected to be clear */ zassert_false(result.mask, "Default host event wake mask is not clear"); - host_event_set_wake_mask_helper(HOST_EVENT_WAKE_MASK_VAL); + host_event_set_wake_mask_helper(HOST_EVENT_TEST_MASK_VAL); /* Verify the mask changed */ host_event_get_wake_mask_helper(&result); - zassert_equal(result.mask, HOST_EVENT_WAKE_MASK_VAL, + zassert_equal(result.mask, HOST_EVENT_TEST_MASK_VAL, "Expected wake mask 0x%08x, returned mask 0x%08x", - HOST_EVENT_WAKE_MASK_VAL, result.mask); + HOST_EVENT_TEST_MASK_VAL, result.mask); /* Clean up the mask */ host_event_set_wake_mask_helper(0); @@ -98,6 +98,20 @@ host_event_get_smi_mask_helper(struct ec_response_host_event_mask *r) EC_RES_SUCCESS, ret_val); } +static void host_event_set_smi_mask_helper(uint32_t mask) +{ + enum ec_status ret_val; + struct ec_params_host_event_mask params = { .mask = mask }; + struct host_cmd_handler_args args = BUILD_HOST_COMMAND_PARAMS( + EC_CMD_HOST_EVENT_SET_SMI_MASK, 0, params); + + ret_val = host_command_process(&args); + + /* EC_CMD_HOST_EVENT_SET_SMI_MASK always returns success */ + zassert_equal(ret_val, EC_RES_SUCCESS, "Expected %d, returned %d", + EC_RES_SUCCESS, ret_val); +} + /** * @brief TestPurpose: Verify EC_CMD_HOST_EVENT_GET_SMI_MASK host command. */ @@ -111,3 +125,33 @@ ZTEST_USER(host_cmd_host_event_commands, test_host_event_get_smi_mask) ztest_test_skip(); #endif } + +/** + * @brief TestPurpose: Verify EC_CMD_HOST_EVENT_SET_SMI_MASK host command. + */ +ZTEST_USER(host_cmd_host_event_commands, test_host_event_set_smi_mask) +{ +#ifdef CONFIG_HOSTCMD_X86 + struct ec_response_host_event_mask result = { 0 }; + + /* Read the current mask */ + host_event_get_smi_mask_helper(&result); + + /* Default mask is expected to be clear */ + zassert_false(result.mask, "Default host event SMI mask is not clear"); + + host_event_set_smi_mask_helper(HOST_EVENT_TEST_MASK_VAL); + + /* Verify the mask changed */ + host_event_get_smi_mask_helper(&result); + + zassert_equal(result.mask, HOST_EVENT_TEST_MASK_VAL, + "Expected SMI mask 0x%08x, returned mask 0x%08x", + HOST_EVENT_TEST_MASK_VAL, result.mask); + + /* Clean up the mask */ + host_event_set_smi_mask_helper(0); +#else + ztest_test_skip(); +#endif +} |