summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJett Rink <jettrink@chromium.org>2019-08-08 09:35:54 -0600
committerCommit Bot <commit-bot@chromium.org>2019-08-20 16:05:48 +0000
commit6d8a5d3f207af7481e2aa114d306f8448d21b74f (patch)
tree6973f68a16c250eec28f05562e341d03d52ccd59
parent7a07137ff8861509b5942a82de1c46b376c6057a (diff)
downloadchrome-ec-6d8a5d3f207af7481e2aa114d306f8448d21b74f.tar.gz
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 <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1744658 Commit-Queue: Denis Brockus <dbrockus@chromium.org> Reviewed-by: Denis Brockus <dbrockus@chromium.org>
-rw-r--r--common/usbc/usb_tc_drp_acc_trysrc_sm.c12
-rw-r--r--test/build.mk3
-rw-r--r--test/test_config.h30
-rw-r--r--test/usb_typec_drp_acc_trysrc.c32
-rw-r--r--test/usb_typec_drp_acc_trysrc.tasklist10
5 files changed, 78 insertions, 9 deletions
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)