diff options
author | Jett Rink <jettrink@chromium.org> | 2019-10-07 11:09:01 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-10-08 17:14:48 +0000 |
commit | dd1dbd8fee7eedef8dad4fe8a8bbec14a0ea5b2e (patch) | |
tree | 1f7ac17718be363bdeb727a397c404c46f9ba041 /test/usb_common_test.c | |
parent | 84ffa0bd38cba5e5daba8527c6ed09e91ca43edd (diff) | |
download | chrome-ec-dd1dbd8fee7eedef8dad4fe8a8bbec14a0ea5b2e.tar.gz |
usbc: fix cc interpretation error
Ensure that two Rp values are interpreted as a debug accessory. Added
unit test for meaningful combinations.
BRANCH=none
BUG=none
TEST=passes unit test.
Change-Id: Ia454382f20f9377edc944dc01be133e062c218b0
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1845811
Reviewed-by: Edward Hill <ecgh@chromium.org>
Diffstat (limited to 'test/usb_common_test.c')
-rw-r--r-- | test/usb_common_test.c | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/test/usb_common_test.c b/test/usb_common_test.c new file mode 100644 index 0000000000..d054f4ead2 --- /dev/null +++ b/test/usb_common_test.c @@ -0,0 +1,74 @@ +/* Copyright 2019 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * Test USB common module. + */ +#include "test_util.h" +#include "usb_common.h" + +int test_pd_get_cc_state(void) +{ + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_3_0, TYPEC_CC_VOLT_RP_3_0), + PD_CC_DFP_DEBUG_ACC, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_3_0, TYPEC_CC_VOLT_RP_1_5), + PD_CC_DFP_DEBUG_ACC, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_3_0, TYPEC_CC_VOLT_RP_DEF), + PD_CC_DFP_DEBUG_ACC, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_1_5, TYPEC_CC_VOLT_RP_3_0), + PD_CC_DFP_DEBUG_ACC, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_1_5, TYPEC_CC_VOLT_RP_1_5), + PD_CC_DFP_DEBUG_ACC, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_1_5, TYPEC_CC_VOLT_RP_DEF), + PD_CC_DFP_DEBUG_ACC, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_DEF, TYPEC_CC_VOLT_RP_3_0), + PD_CC_DFP_DEBUG_ACC, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_DEF, TYPEC_CC_VOLT_RP_1_5), + PD_CC_DFP_DEBUG_ACC, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_DEF, TYPEC_CC_VOLT_RP_DEF), + PD_CC_DFP_DEBUG_ACC, "%d"); + + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_3_0, TYPEC_CC_VOLT_OPEN), + PD_CC_DFP_ATTACHED, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_1_5, TYPEC_CC_VOLT_OPEN), + PD_CC_DFP_ATTACHED, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RP_DEF, TYPEC_CC_VOLT_OPEN), + PD_CC_DFP_ATTACHED, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_OPEN, TYPEC_CC_VOLT_RP_3_0), + PD_CC_DFP_ATTACHED, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_OPEN, TYPEC_CC_VOLT_RP_1_5), + PD_CC_DFP_ATTACHED, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_OPEN, TYPEC_CC_VOLT_RP_DEF), + PD_CC_DFP_ATTACHED, "%d"); + + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RD, TYPEC_CC_VOLT_RD), + PD_CC_UFP_DEBUG_ACC, "%d"); + + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RD, TYPEC_CC_VOLT_RA), + PD_CC_UFP_ATTACHED, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RD, TYPEC_CC_VOLT_OPEN), + PD_CC_UFP_ATTACHED, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RA, TYPEC_CC_VOLT_RD), + PD_CC_UFP_ATTACHED, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_OPEN, TYPEC_CC_VOLT_RD), + PD_CC_UFP_ATTACHED, "%d"); + + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RA, TYPEC_CC_VOLT_RA), + PD_CC_UFP_AUDIO_ACC, "%d"); + + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_OPEN, TYPEC_CC_VOLT_OPEN), + PD_CC_NONE, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_OPEN, TYPEC_CC_VOLT_RA), + PD_CC_NONE, "%d"); + TEST_EQ(pd_get_cc_state(TYPEC_CC_VOLT_RA, TYPEC_CC_VOLT_OPEN), + PD_CC_NONE, "%d"); + + return EC_SUCCESS; +} + +void run_test(void) +{ + RUN_TEST(test_pd_get_cc_state); + + test_print_result(); +} |