summaryrefslogtreecommitdiff
path: root/test/usb_tcpmv2_td_pd_src_e5.c
diff options
context:
space:
mode:
authorDenis Brockus <dbrockus@google.com>2021-01-15 11:32:12 -0700
committerCommit Bot <commit-bot@chromium.org>2021-01-16 03:55:28 +0000
commitb4f850a4fe409be3d2bbcab4deee3215abda7977 (patch)
tree107de5bd7e0475a2749eed9993333496f5813441 /test/usb_tcpmv2_td_pd_src_e5.c
parent40134002ef735d5e6f2351e7af0d6af2197a9633 (diff)
downloadchrome-ec-b4f850a4fe409be3d2bbcab4deee3215abda7977.tar.gz
TCPMv2: Compliance Unit Test - TD.PD.SRC.E5 cleanup
Time delay for HardReset in a better way BUG=none BRANCH=none TEST=make run-usb_tcpmv2_compliance Signed-off-by: Denis Brockus <dbrockus@google.com> Change-Id: I5b22d78069269c306cb49da5b79f13c2a2f6b467 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2633457 Tested-by: Denis Brockus <dbrockus@chromium.org> Auto-Submit: Denis Brockus <dbrockus@chromium.org> Reviewed-by: Edward Hill <ecgh@chromium.org> Commit-Queue: Denis Brockus <dbrockus@chromium.org>
Diffstat (limited to 'test/usb_tcpmv2_td_pd_src_e5.c')
-rw-r--r--test/usb_tcpmv2_td_pd_src_e5.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/test/usb_tcpmv2_td_pd_src_e5.c b/test/usb_tcpmv2_td_pd_src_e5.c
index 3da7c843b2..52cb88b098 100644
--- a/test/usb_tcpmv2_td_pd_src_e5.c
+++ b/test/usb_tcpmv2_td_pd_src_e5.c
@@ -22,6 +22,8 @@
*/
int test_td_pd_src_e5(void)
{
+ uint64_t end_time;
+
partner_set_pd_rev(PD_REV20);
TEST_EQ(tcpci_startup(), EC_SUCCESS, "%d");
@@ -43,6 +45,9 @@ int test_td_pd_src_e5(void)
EC_SUCCESS, "%d");
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
+ /* Save time GoodCRC was sent */
+ end_time = get_time().val;
+
/*
* c) The Tester intentionally does not send a Request message and
* waits for a Hard Reset.
@@ -56,11 +61,20 @@ int test_td_pd_src_e5(void)
* last bit of the GoodCRC message EOP has been sent, the test
* fails.
*/
- task_wait_event(24 * MSEC);
- TEST_NE(mock_tcpci_get_reg(TCPC_REG_TRANSMIT),
- TCPC_TX_HARD_RESET, "%d");
+ end_time += 24 * MSEC;
+ while (get_time().val < end_time) {
+ TEST_NE(mock_tcpci_get_reg(TCPC_REG_TRANSMIT),
+ TCPC_TX_HARD_RESET, "%d");
+ task_wait_event(1 * MSEC);
+ }
- task_wait_event(7 * MSEC);
+ end_time += 6 * MSEC;
+ while (get_time().val < end_time) {
+ if (mock_tcpci_get_reg(TCPC_REG_TRANSMIT) ==
+ TCPC_TX_HARD_RESET)
+ break;
+ task_wait_event(1 * MSEC);
+ }
TEST_EQ(mock_tcpci_get_reg(TCPC_REG_TRANSMIT),
TCPC_TX_HARD_RESET, "%d");
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS | TCPC_REG_ALERT_TX_FAILED);