summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAl Semjonovs <asemjonovs@google.com>2022-03-24 22:17:48 +0000
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-04-08 15:57:01 +0000
commit94de51f607f5379b420c7af0b416501ef58f4efa (patch)
tree708e49abc26cdce05fcf6f702e1c0e91d5abb396
parent4525301e976932e488ec255dae49c73ae82ef489 (diff)
downloadchrome-ec-94de51f607f5379b420c7af0b416501ef58f4efa.tar.gz
zephyr:test: Add PR_Swap test case
Send PR Swap request and validate PR is swapped. BUG=b:225177659 BRANCH=NONE TEST=zmake test test-drivers Signed-off-by: Al Semjonovs <asemjonovs@google.com> Change-Id: Ifba307778275cd766fbd6be3233878d1ed4627d8 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3551357 Reviewed-by: Yuval Peress <peress@google.com>
-rw-r--r--zephyr/test/drivers/src/integration/usbc/usb_pd_ctrl_msg.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/zephyr/test/drivers/src/integration/usbc/usb_pd_ctrl_msg.c b/zephyr/test/drivers/src/integration/usbc/usb_pd_ctrl_msg.c
index 7e063c71ff..cd884f26b8 100644
--- a/zephyr/test/drivers/src/integration/usbc/usb_pd_ctrl_msg.c
+++ b/zephyr/test/drivers/src/integration/usbc/usb_pd_ctrl_msg.c
@@ -139,3 +139,40 @@ ZTEST_F(usb_pd_ctrl_msg_test, verify_vconn_swap)
zassert_equal(PD_ROLE_VCONN_OFF, snk_resp.vconn_role,
"SNK Returned vconn_role=%u", snk_resp.vconn_role);
}
+
+ZTEST_F(usb_pd_ctrl_msg_test, verify_pr_swap)
+{
+ struct ec_response_typec_status snk_resp = { 0 };
+ int rv = 0;
+
+ /* TODO(b/228593065): Revert this once ZTEST fix before ordering
+ * is pulled in
+ */
+ usb_pd_ctrl_msg_before(this);
+
+ snk_resp = host_cmd_typec_status(SNK_PORT);
+ zassert_equal(PD_ROLE_SINK, snk_resp.power_role,
+ "SNK Returned power_role=%u", snk_resp.power_role);
+
+ /* Ignore ACCEPT in common handler for PR Swap request,
+ * causes soft reset
+ */
+ tcpci_partner_common_handler_mask_msg(&this->partner_emul.common_data,
+ PD_CTRL_ACCEPT, true);
+
+ /* Send PR_SWAP request */
+ rv = tcpci_partner_send_control_msg(&this->partner_emul.common_data,
+ PD_CTRL_PR_SWAP, 0);
+ zassert_ok(rv, "Failed to send PR_SWAP request, rv=%d", rv);
+
+ /* Send PS_RDY request */
+ rv = tcpci_partner_send_control_msg(&this->partner_emul.common_data,
+ PD_CTRL_PS_RDY, 15);
+ zassert_ok(rv, "Failed to send PS_RDY request, rv=%d", rv);
+
+ k_sleep(K_MSEC(20));
+
+ snk_resp = host_cmd_typec_status(SNK_PORT);
+ zassert_equal(PD_ROLE_SOURCE, snk_resp.power_role,
+ "SNK Returned power_role=%u", snk_resp.power_role);
+}