summaryrefslogtreecommitdiff
path: root/test/usb_tcpmv2_td_pd_ll_e4.c
diff options
context:
space:
mode:
authorDenis Brockus <dbrockus@google.com>2020-12-28 11:42:29 -0700
committerCommit Bot <commit-bot@chromium.org>2020-12-29 16:53:12 +0000
commit96a7fefe36e701638616d69366eb9a5f093caa55 (patch)
treef4ac323a1fbea12f9d86c130b130d474ba81a144 /test/usb_tcpmv2_td_pd_ll_e4.c
parentc33ab2439a46ea70b0647078bea940821a3a1b5c (diff)
downloadchrome-ec-96a7fefe36e701638616d69366eb9a5f093caa55.tar.gz
TCPMv2: Compliance Unit Test - cleanup common code
PROC.PD.E1 and PROC.PD.E3 used common code that was also peppered through out some of the tests. Make a common copy that they can all use. BUG=b:176249915 BRANCH=none TEST=make buildall Signed-off-by: Denis Brockus <dbrockus@google.com> Change-Id: I82505fa8ac61db2ee941f2a236a22bdf3e69ae2f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2604562 Tested-by: Denis Brockus <dbrockus@chromium.org> Reviewed-by: Edward Hill <ecgh@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org> Auto-Submit: Denis Brockus <dbrockus@chromium.org>
Diffstat (limited to 'test/usb_tcpmv2_td_pd_ll_e4.c')
-rw-r--r--test/usb_tcpmv2_td_pd_ll_e4.c97
1 files changed, 4 insertions, 93 deletions
diff --git a/test/usb_tcpmv2_td_pd_ll_e4.c b/test/usb_tcpmv2_td_pd_ll_e4.c
index e79714ed9d..2ef421f14f 100644
--- a/test/usb_tcpmv2_td_pd_ll_e4.c
+++ b/test/usb_tcpmv2_td_pd_ll_e4.c
@@ -9,6 +9,7 @@
#include "test_util.h"
#include "timer.h"
#include "usb_tcpmv2_compliance.h"
+#include "usb_tc_sm.h"
/*****************************************************************************
* TD.PD.LL.E4. Hard Reset Usage
@@ -30,69 +31,12 @@ static int td_pd_ll_e4(enum pd_data_role data_role)
/*
* a) Run PROC.PD.E1 Bring-up according to the UUT role.
*/
- TEST_EQ(proc_pd_e1(data_role), EC_SUCCESS, "%d");
+ TEST_EQ(proc_pd_e1(data_role, INITIAL_ATTACH), EC_SUCCESS, "%d");
/*
* Make sure we are idle. Reject everything that is pending
*/
- if (data_role == PD_ROLE_DFP) {
- TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP_PRIME, 0,
- PD_DATA_VENDOR_DEF),
- EC_SUCCESS, "%d");
- mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
- task_wait_event(10 * MSEC);
- partner_send_msg(PD_MSG_SOP_PRIME, PD_CTRL_NOT_SUPPORTED, 0, 0,
- NULL);
-
- TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, 0,
- PD_DATA_VENDOR_DEF),
- EC_SUCCESS, "%d");
- mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
- task_wait_event(10 * MSEC);
- partner_send_msg(PD_MSG_SOP, PD_CTRL_NOT_SUPPORTED, 0, 0, NULL);
-
- TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP,
- PD_CTRL_GET_SOURCE_CAP, 0),
- EC_SUCCESS, "%d");
- mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
- task_wait_event(10 * MSEC);
- partner_send_msg(PD_MSG_SOP, PD_DATA_SOURCE_CAP, 1, 0, &pdo);
-
- TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP,
- PD_CTRL_GET_SINK_CAP, 0),
- EC_SUCCESS, "%d");
- mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
- task_wait_event(10 * MSEC);
- partner_send_msg(PD_MSG_SOP, PD_DATA_SINK_CAP, 1, 0, &pdo);
- } else if (data_role == PD_ROLE_UFP) {
- int vcs;
-
- TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, PD_CTRL_DR_SWAP, 0),
- EC_SUCCESS, "%d");
- mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
- task_wait_event(10 * MSEC);
- partner_send_msg(PD_MSG_SOP, PD_CTRL_REJECT, 0, 0, NULL);
-
- for (vcs = 0; vcs < 4; vcs++) {
- TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP,
- PD_CTRL_VCONN_SWAP, 0),
- EC_SUCCESS, "%d");
- mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
- task_wait_event(10 * MSEC);
- partner_send_msg(PD_MSG_SOP, PD_CTRL_REJECT, 0, 0,
- NULL);
- }
-
- TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP,
- PD_CTRL_GET_SINK_CAP, 0),
- EC_SUCCESS, "%d");
- mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
- task_wait_event(10 * MSEC);
- partner_send_msg(PD_MSG_SOP, PD_DATA_SINK_CAP, 1, 0, &pdo);
- }
-
- /* Should be idle now. */
- task_wait_event(10 * SECOND);
+ TEST_EQ(handle_attach_expected_msgs(data_role), EC_SUCCESS, "%d");
/*
* b) Send a Get_Sink_Cap message to the UUT, wait for a reply
@@ -133,41 +77,8 @@ static int td_pd_ll_e4(enum pd_data_role data_role)
* e) Do the bring-up procedure for Link tests and check that the link
* is successfully established.
*/
- if (partner_get_power_role() == PD_ROLE_SINK) {
- TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP,
- 0,
- PD_DATA_SOURCE_CAP),
- EC_SUCCESS, "%d");
-
- mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
- task_wait_event(10 * MSEC);
-
- partner_send_msg(PD_MSG_SOP, PD_DATA_REQUEST, 1, 0, &rdo);
-
- TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, PD_CTRL_ACCEPT, 0),
- EC_SUCCESS, "%d");
- mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
-
- TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, PD_CTRL_PS_RDY, 0),
- EC_SUCCESS, "%d");
- mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
- task_wait_event(5 * MSEC);
-
- partner_send_msg(PD_MSG_SOP, PD_CTRL_ACCEPT, 0, 0, NULL);
- task_wait_event(1 * MSEC);
- } else {
- task_wait_event(10 * MSEC);
- partner_send_msg(PD_MSG_SOP, PD_DATA_SOURCE_CAP, 1, 0, &pdo);
-
- TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, 0, PD_DATA_REQUEST),
- EC_SUCCESS, "%d");
- mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
+ TEST_EQ(proc_pd_e1(data_role, ALREADY_ATTACHED), EC_SUCCESS, "%d");
- partner_send_msg(PD_MSG_SOP, PD_CTRL_ACCEPT, 0, 0, NULL);
- task_wait_event(10 * MSEC);
- partner_send_msg(PD_MSG_SOP, PD_CTRL_PS_RDY, 0, 0, NULL);
- task_wait_event(1 * MSEC);
- }
return EC_SUCCESS;
}
int test_td_pd_ll_e4_dfp(void)