summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiana Z <dzigterman@chromium.org>2023-02-24 11:02:50 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-03-09 19:11:38 +0000
commit0753547ef59a017b659e5c772ec7063790dec2da (patch)
treee13604f9812f7e701249400e6d91cdd2a7c26b55
parenta3a6a5942b91f9f484a2a7e883ddd4841395ed02 (diff)
downloadchrome-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.txt3
-rw-r--r--zephyr/test/drivers/ap_vdm_control/src/ap_vdm_control_disabled.c53
-rw-r--r--zephyr/test/drivers/testcase.yaml5
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, &params),
+ 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, &params, &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: