summaryrefslogtreecommitdiff
path: root/test/usb_typec_ctvpd.c
diff options
context:
space:
mode:
authorJett Rink <jettrink@chromium.org>2020-08-14 12:23:20 -0600
committerCommit Bot <commit-bot@chromium.org>2020-08-19 23:10:40 +0000
commitbb20158f5c2c837a6e780672add4fd49bebb833c (patch)
treeb2e74a8bd9db5a2e3c1fddd33674d169d5cbde02 /test/usb_typec_ctvpd.c
parent91a31c82caff395e835134d3bb9d33aebe043cd0 (diff)
downloadchrome-ec-bb20158f5c2c837a6e780672add4fd49bebb833c.tar.gz
usbc: wake task on every state transition
Whenever we change state, we should continue to wake the USB statemachine task up until is settles into a steady state were it is waiting/polling on a timer or event. BRANCH=none BUG=b:163152687 TEST=Ran GRL PD3.0 test on Trembyle and did not see any regressions. It did make a few tests pass that were failing before due to timing issues. Signed-off-by: Jett Rink <jettrink@chromium.org> Change-Id: Idc3c1ae8d92a0f6a5cd4b82f9db6d7138d143f77 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2356954 Reviewed-by: Edward Hill <ecgh@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Diana Z <dzigterman@chromium.org>
Diffstat (limited to 'test/usb_typec_ctvpd.c')
-rw-r--r--test/usb_typec_ctvpd.c26
1 files changed, 11 insertions, 15 deletions
diff --git a/test/usb_typec_ctvpd.c b/test/usb_typec_ctvpd.c
index 1340c7a093..d46e68e40d 100644
--- a/test/usb_typec_ctvpd.c
+++ b/test/usb_typec_ctvpd.c
@@ -460,10 +460,10 @@ static int test_vpd_host_src_detection_vbus(void)
host_connect_source(VBUS_0);
- wait_for_state_change(port, 10 * MSEC);
-
- TEST_ASSERT(get_state_tc(port) == TC_UNATTACHED_SNK);
-
+ /*
+ * The state changes from UNATTACHED_SNK to ATTACH_WAIT_SNK immediately
+ * if Rp is detected.
+ */
wait_for_state_change(port, 10 * MSEC);
TEST_ASSERT(get_state_tc(port) == TC_ATTACH_WAIT_SNK);
@@ -523,11 +523,12 @@ static int test_vpd_host_src_detection_vconn(void)
* Host Port VCONN Removed
*/
+ mock_set_host_cc_source_voltage(0);
mock_set_vconn(VCONN_0);
wait_for_state_change(port, 10 * MSEC);
- TEST_ASSERT(get_state_tc(port) == TC_UNATTACHED_SNK);
+ TEST_EQ(get_state_tc(port), TC_UNATTACHED_SNK, "%d");
host_disconnect_source();
@@ -639,13 +640,12 @@ static int test_vpd_host_src_detection_message_reception(void)
* Host Port VBUS Removed
*/
- host_connect_source(VBUS_0);
+ host_disconnect_source();
wait_for_state_change(port, 100 * MSEC);
TEST_EQ(get_state_tc(port), TC_UNATTACHED_SNK, "%d");
- host_disconnect_source();
return EC_SUCCESS;
}
@@ -760,32 +760,28 @@ static int test_ctvpd_behavior_case1(void)
TEST_ASSERT(ct_connect_source(CC2, VBUS_0));
wait_for_state_change(port, 40 * MSEC);
- TEST_ASSERT(get_state_tc(port) == TC_CT_ATTACH_WAIT_VPD);
+ TEST_EQ(get_state_tc(port), TC_CT_ATTACH_WAIT_VPD, "%d");
/* Remove Power Source */
TEST_ASSERT(ct_disconnect_source());
wait_for_state_change(port, 40 * MSEC);
- TEST_ASSERT(get_state_tc(port) == TC_CT_UNATTACHED_VPD);
+ TEST_EQ(get_state_tc(port), TC_CT_UNATTACHED_VPD, "%d");
/* Attach Sink */
TEST_ASSERT(ct_connect_sink(CC1, SRC_CON_DEF));
- wait_for_state_change(port, PD_T_DRP_SNK);
-
- TEST_ASSERT(get_state_tc(port) == TC_CT_UNATTACHED_UNSUPPORTED);
-
wait_for_state_change(port, 40 * MSEC);
- TEST_ASSERT(get_state_tc(port) == TC_CT_ATTACH_WAIT_UNSUPPORTED);
+ TEST_EQ(get_state_tc(port), TC_CT_ATTACH_WAIT_UNSUPPORTED, "%d");
/* Remove VCONN (Host detach) */
mock_set_vconn(VCONN_0);
wait_for_state_change(port, 40 * MSEC);
- TEST_ASSERT(get_state_tc(port) == TC_UNATTACHED_SNK);
+ TEST_EQ(get_state_tc(port), TC_UNATTACHED_SNK, "%d");
return EC_SUCCESS;
}