From 6d8a5d3f207af7481e2aa114d306f8448d21b74f Mon Sep 17 00:00:00 2001 From: Jett Rink Date: Thu, 8 Aug 2019 09:35:54 -0600 Subject: test: add baseline test for TC_DRP_TRYSRC SM BRANCH=none BUG=none TEST=unit test pass Change-Id: I0ecb9f0298fd43ca0db800311a309d98eb1e29b5 Signed-off-by: Jett Rink Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1744658 Commit-Queue: Denis Brockus Reviewed-by: Denis Brockus --- common/usbc/usb_tc_drp_acc_trysrc_sm.c | 12 ++++++++++++ test/build.mk | 3 +++ test/test_config.h | 30 +++++++++++++++++++++--------- test/usb_typec_drp_acc_trysrc.c | 32 ++++++++++++++++++++++++++++++++ test/usb_typec_drp_acc_trysrc.tasklist | 10 ++++++++++ 5 files changed, 78 insertions(+), 9 deletions(-) create mode 100644 test/usb_typec_drp_acc_trysrc.c create mode 100644 test/usb_typec_drp_acc_trysrc.tasklist diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c index 8ec7e8ffbc..896ffffdd1 100644 --- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c +++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c @@ -1706,3 +1706,15 @@ static const struct usb_state tc_states[] = { }, #endif /* CONFIG_USB_PD_TRY_SRC */ }; + +#ifdef TEST_BUILD +const struct test_sm_data test_tc_sm_data[] = { + { + .base = tc_states, + .size = ARRAY_SIZE(tc_states), + .names = tc_state_names, + .names_size = ARRAY_SIZE(tc_state_names), + }, +}; +const int test_tc_sm_data_size = ARRAY_SIZE(test_tc_sm_data); +#endif diff --git a/test/build.mk b/test/build.mk index b90f976430..8d68da07f5 100644 --- a/test/build.mk +++ b/test/build.mk @@ -73,6 +73,7 @@ test-list-host += usb_sm_framework_h1 test-list-host += usb_sm_framework_h0 test-list-host += usb_typec_vpd test-list-host += usb_typec_ctvpd +test-list-host += usb_typec_drp_acc_trysrc test-list-host += usb_prl test-list-host += utils test-list-host += utils_str @@ -145,6 +146,8 @@ usb_sm_framework_h1-y=usb_sm_framework_h3.o usb_sm_framework_h0-y=usb_sm_framework_h3.o usb_typec_vpd-y=usb_typec_ctvpd.o vpd_api.o usb_sm_checks.o usb_typec_ctvpd-y=usb_typec_ctvpd.o vpd_api.o usb_sm_checks.o +usb_typec_drp_acc_trysrc-y=usb_typec_drp_acc_trysrc.o vpd_api.o \ + usb_sm_checks.o usb_prl-y=usb_prl.o usb_sm_checks.o utils-y=utils.o utils_str-y=utils_str.o diff --git a/test/test_config.h b/test/test_config.h index 1ca557bbef..de3753a71c 100644 --- a/test/test_config.h +++ b/test/test_config.h @@ -276,13 +276,10 @@ int ncp15wb_calculate_temp(uint16_t adc); #define CONFIG_SW_CRC #endif -#if defined(TEST_USB_TYPEC_VPD) || defined(TEST_USB_TYPEC_CTVPD) -#if defined(TEST_USB_TYPEC_VPD) -#define CONFIG_USB_TYPEC_VPD -#else -#define CONFIG_USB_TYPEC_CTVPD -#endif - +/* Common TypeC tests defines */ +#if defined(TEST_USB_TYPEC_VPD) || \ + defined(TEST_USB_TYPEC_CTVPD) || \ + defined(TEST_USB_TYPEC_DRP_ACC_TRYSRC) #define CONFIG_USB_PID 0x5036 #define VPD_HW_VERSION 0x0001 #define VPD_FW_VERSION 0x0001 @@ -302,9 +299,24 @@ int ncp15wb_calculate_temp(uint16_t adc); #define CONFIG_USB_PD_TCPC #define CONFIG_USB_PD_TCPM_STUB #define CONFIG_USB_POWER_DELIVERY -#define CONFIG_SHA256 #define CONFIG_SW_CRC -#endif /* TEST_USB_TYPEC_VPD or TEST_USB_TYPEC_CTVPD */ +#endif /* Common TypeC test defines */ + +#ifdef TEST_USB_TYPEC_VPD +#define CONFIG_USB_TYPEC_VPD +#endif + +#ifdef TEST_USB_TYPEC_CTVPD +#define CONFIG_USB_TYPEC_CTVPD +#endif + +#ifdef TEST_USB_TYPEC_DRP_ACC_TRYSRC +#define CONFIG_USB_TYPEC_DRP_ACC_TRYSRC +#define CONFIG_USB_PD_DUAL_ROLE +#define CONFIG_USB_PD_TRY_SRC +#undef CONFIG_USB_PRL_SM +#undef CONFIG_USB_PE_SM +#endif #if defined(TEST_USB_PD) || defined(TEST_USB_PD_GIVEBACK) || \ defined(TEST_USB_PD_REV30) diff --git a/test/usb_typec_drp_acc_trysrc.c b/test/usb_typec_drp_acc_trysrc.c new file mode 100644 index 0000000000..ffc2a896c3 --- /dev/null +++ b/test/usb_typec_drp_acc_trysrc.c @@ -0,0 +1,32 @@ +/* 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 Type-C VPD and CTVPD module. + */ +#include "task.h" +#include "timer.h" +#include "test_util.h" +#include "usb_sm_checks.h" +#include "charge_manager.h" + +void charge_manager_set_ceil(int port, enum ceil_requestor requestor, int ceil) +{ + /* Do Nothing, but needed for linking */ +} + +void run_test(void) +{ + test_reset(); + + /* Ensure that PD task initializes its state machine */ + task_wake(TASK_ID_PD_C0); + task_wait_event(5 * MSEC); + + /* Do basic state machine sanity checks last. */ + RUN_TEST(test_tc_no_parent_cycles); + RUN_TEST(test_tc_no_empty_state); + RUN_TEST(test_tc_all_states_named); + + test_print_result(); +} diff --git a/test/usb_typec_drp_acc_trysrc.tasklist b/test/usb_typec_drp_acc_trysrc.tasklist new file mode 100644 index 0000000000..eb41326e3e --- /dev/null +++ b/test/usb_typec_drp_acc_trysrc.tasklist @@ -0,0 +1,10 @@ +/* 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. + */ + +/** + * See CONFIG_TEST_TASK_LIST in config.h for details. + */ +#define CONFIG_TEST_TASK_LIST \ + TASK_TEST(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) -- cgit v1.2.1