summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Massey <aaronmassey@google.com>2022-10-20 09:21:20 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-10-20 18:58:55 +0000
commit28f30fdf10a708e70ac3a7ecaeb00dc3c333e252 (patch)
treea0de34e486d4e390c106371eacc6be1e4694a616
parentf929d22fd28231183a9d318492a81e24997c401f (diff)
downloadchrome-ec-28f30fdf10a708e70ac3a7ecaeb00dc3c333e252.tar.gz
test: host_request_expected_size()
Add a test suite that verifies the host_request_expected_size() function returns the expected host packet size given a host request packet header. Scenarios tested: * mismatched host request version * reserved bits in packet header set * Valid parameters result in header datalength used to determine packet size BRANCH=none BUG=b:254647370 TEST=twister -i -s zephyr/test/drivers/drivers.host_cmd Signed-off-by: Aaron Massey <aaronmassey@google.com> Change-Id: Ie4b93a90a6d6b2ca55638de7936ed50e8410933c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3967308 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
-rw-r--r--zephyr/test/drivers/host_cmd/CMakeLists.txt1
-rw-r--r--zephyr/test/drivers/host_cmd/src/host_request_expected_size.c51
2 files changed, 52 insertions, 0 deletions
diff --git a/zephyr/test/drivers/host_cmd/CMakeLists.txt b/zephyr/test/drivers/host_cmd/CMakeLists.txt
index 4529e6c570..a86de6e617 100644
--- a/zephyr/test/drivers/host_cmd/CMakeLists.txt
+++ b/zephyr/test/drivers/host_cmd/CMakeLists.txt
@@ -10,6 +10,7 @@ target_sources(app PRIVATE
src/get_pd_port_caps.c
src/host_event_commands.c
src/host_event_commands_deprecated.c
+ src/host_request_expected_size.c
src/keyboard_mkbp.c
src/motion_sense.c
src/pd_control.c
diff --git a/zephyr/test/drivers/host_cmd/src/host_request_expected_size.c b/zephyr/test/drivers/host_cmd/src/host_request_expected_size.c
new file mode 100644
index 0000000000..30ff8c11b2
--- /dev/null
+++ b/zephyr/test/drivers/host_cmd/src/host_request_expected_size.c
@@ -0,0 +1,51 @@
+/* Copyright 2022 The ChromiumOS Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include <zephyr/ztest.h>
+
+#include "host_command.h"
+#include "test/drivers/test_state.h"
+
+ZTEST(host_request_expected_size, test_mismatched_host_request_version)
+{
+ const struct ec_host_request request = {
+ /* Make version mismatch */
+ .struct_version = EC_HOST_REQUEST_VERSION + 1,
+ };
+ int ret = host_request_expected_size(&request);
+
+ zassert_equal(ret, 0);
+}
+
+ZTEST(host_request_expected_size, test_nonzero_reserved_bytes)
+{
+ const struct ec_host_request request = {
+ /* Make version match */
+ .struct_version = EC_HOST_REQUEST_VERSION,
+ /* Set lsb to reserved bytes */
+ .reserved = 1,
+ };
+ int ret = host_request_expected_size(&request);
+
+ zassert_equal(ret, 0);
+}
+
+ZTEST(host_request_expected_size, test_data_len_added_to_response_size)
+{
+ const struct ec_host_request request = {
+ /* Make version match */
+ .struct_version = EC_HOST_REQUEST_VERSION,
+ /* Set reserved bytes to 0 (required) */
+ .reserved = 0,
+ /* Test data length max value to see changes in M/LSB */
+ .data_len = UINT16_MAX,
+ };
+ int ret = host_request_expected_size(&request);
+
+ zassert_equal(ret, sizeof(request) + request.data_len);
+}
+
+ZTEST_SUITE(host_request_expected_size, drivers_predicate_post_main, NULL, NULL,
+ NULL, NULL);