diff options
author | Diana Z <dzigterman@chromium.org> | 2023-02-24 11:02:50 -0700 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-03-09 19:11:38 +0000 |
commit | 0753547ef59a017b659e5c772ec7063790dec2da (patch) | |
tree | e13604f9812f7e701249400e6d91cdd2a7c26b55 | |
parent | a3a6a5942b91f9f484a2a7e883ddd4841395ed02 (diff) | |
download | chrome-ec-0753547ef59a017b659e5c772ec7063790dec2da.tar.gz |
Zephyr test: Add feature disabled test for AP VDM control
Add a suite to confirm the host command and stub behavior expected when
the AP VDM control command is disabled.
BRANCH=None
BUG=b:266714542
TEST=./twister -T ./zephyr/test
Change-Id: If82c2d6f4d679f6af782b52298c9468a51a28503
Signed-off-by: Diana Z <dzigterman@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4290240
Reviewed-by: Yuval Peress <peress@google.com>
-rw-r--r-- | zephyr/test/drivers/ap_vdm_control/CMakeLists.txt | 3 | ||||
-rw-r--r-- | zephyr/test/drivers/ap_vdm_control/src/ap_vdm_control_disabled.c | 53 | ||||
-rw-r--r-- | zephyr/test/drivers/testcase.yaml | 5 |
3 files changed, 60 insertions, 1 deletions
diff --git a/zephyr/test/drivers/ap_vdm_control/CMakeLists.txt b/zephyr/test/drivers/ap_vdm_control/CMakeLists.txt index fb762dbe3f..6b1756bac4 100644 --- a/zephyr/test/drivers/ap_vdm_control/CMakeLists.txt +++ b/zephyr/test/drivers/ap_vdm_control/CMakeLists.txt @@ -9,7 +9,8 @@ zephyr_library_get_current_dir_lib_name(${ZEPHYR_BASE} lib_name) zephyr_interface_library_named(${lib_name}) # Add source files -zephyr_library_sources("${CMAKE_CURRENT_SOURCE_DIR}/src/ap_vdm_control.c") +zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_USB_PD_VDM_AP_CONTROL "${CMAKE_CURRENT_SOURCE_DIR}/src/ap_vdm_control.c") +zephyr_library_sources_ifndef(CONFIG_PLATFORM_EC_USB_PD_VDM_AP_CONTROL "${CMAKE_CURRENT_SOURCE_DIR}/src/ap_vdm_control_disabled.c") # Link in the library zephyr_library_link_libraries(${lib_name}) diff --git a/zephyr/test/drivers/ap_vdm_control/src/ap_vdm_control_disabled.c b/zephyr/test/drivers/ap_vdm_control/src/ap_vdm_control_disabled.c new file mode 100644 index 0000000000..a101373046 --- /dev/null +++ b/zephyr/test/drivers/ap_vdm_control/src/ap_vdm_control_disabled.c @@ -0,0 +1,53 @@ +/* Copyright 2023 The ChromiumOS Authors + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "ec_commands.h" +#include "test/drivers/stubs.h" +#include "test/drivers/test_state.h" +#include "test/drivers/utils.h" +#include "usb_pd_ap_vdm_control.h" + +#include <stdint.h> + +#include <zephyr/kernel.h> +#include <zephyr/ztest.h> + +#define TEST_PORT USBC_PORT_C0 + +ZTEST_SUITE(ap_vdm_control_disabled, drivers_predicate_post_main, NULL, NULL, + NULL, NULL); + +ZTEST(ap_vdm_control_disabled, test_feature_absent) +{ + struct ec_response_get_features feat = host_cmd_get_features(); + + zassert_false(feat.flags[1] & + EC_FEATURE_MASK_1(EC_FEATURE_TYPEC_AP_VDM_SEND)); +} + +ZTEST(ap_vdm_control_disabled, test_send_vdm_req_fails) +{ + struct ec_params_typec_control params = { + .port = TEST_PORT, + .command = TYPEC_CONTROL_COMMAND_SEND_VDM_REQ, + .vdm_req_params = { + .vdm_data = { 0 }, + .vdm_data_objects = 1, + .partner_type = TYPEC_PARTNER_SOP, + }, + }; + + zassert_equal(ec_cmd_typec_control(NULL, ¶ms), + EC_RES_INVALID_PARAM); +} + +ZTEST(ap_vdm_control_disabled, test_vdm_response_fails) +{ + struct ec_response_typec_vdm_response vdm_resp; + struct ec_params_typec_vdm_response params = { .port = TEST_PORT }; + + zassert_equal(ec_cmd_typec_vdm_response(NULL, ¶ms, &vdm_resp), + EC_RES_INVALID_COMMAND); +} diff --git a/zephyr/test/drivers/testcase.yaml b/zephyr/test/drivers/testcase.yaml index 04567d0a2c..afe12cb8d9 100644 --- a/zephyr/test/drivers/testcase.yaml +++ b/zephyr/test/drivers/testcase.yaml @@ -65,6 +65,11 @@ tests: extra_args: CONF_FILE="prj.conf;ap_vdm_control/prj.conf" extra_configs: - CONFIG_LINK_TEST_SUITE_AP_VDM_CONTROL=y + drivers.ap_vdm_control_disabled: + extra_args: CONF_FILE="prj.conf;ap_vdm_control/prj.conf" + extra_configs: + - CONFIG_PLATFORM_EC_USB_PD_VDM_AP_CONTROL=n + - CONFIG_LINK_TEST_SUITE_AP_VDM_CONTROL=y drivers.button: timeout: 360 extra_configs: |