diff options
author | Denis Brockus <dbrockus@google.com> | 2021-01-15 11:32:12 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-01-16 03:55:28 +0000 |
commit | b4f850a4fe409be3d2bbcab4deee3215abda7977 (patch) | |
tree | 107de5bd7e0475a2749eed9993333496f5813441 /test | |
parent | 40134002ef735d5e6f2351e7af0d6af2197a9633 (diff) | |
download | chrome-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')
-rw-r--r-- | test/usb_tcpmv2_td_pd_src_e5.c | 22 |
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); |