diff options
author | Aaron Massey <aaronmassey@google.com> | 2022-10-20 09:21:20 -0600 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-10-20 18:58:55 +0000 |
commit | 28f30fdf10a708e70ac3a7ecaeb00dc3c333e252 (patch) | |
tree | a0de34e486d4e390c106371eacc6be1e4694a616 | |
parent | f929d22fd28231183a9d318492a81e24997c401f (diff) | |
download | chrome-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.txt | 1 | ||||
-rw-r--r-- | zephyr/test/drivers/host_cmd/src/host_request_expected_size.c | 51 |
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); |