summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Short <keithshort@chromium.org>2022-08-19 11:14:32 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-08-24 20:00:32 +0000
commiteae48ee95b3ddbb8bfafcbf45bcce4a95e0b3ffe (patch)
tree6bb35263581c44343a33ef1b8d9b6bf8d977bd67
parenta87700f931255322ba3f7667ef6f642cb97b6599 (diff)
downloadchrome-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.c52
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
+}