summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJett Rink <jettrink@chromium.org>2020-07-20 12:02:23 -0600
committerCommit Bot <commit-bot@chromium.org>2020-07-21 20:56:22 +0000
commit783ba1855035fa1827a701b1d905dabedbb9bb7a (patch)
treef9278ff1a325e525d1d8225e26b35ec3db4b51bf /test
parente2d358b2d8c78067a19defb0beeb15428459ae26 (diff)
downloadchrome-ec-783ba1855035fa1827a701b1d905dabedbb9bb7a.tar.gz
test: Use pd_task for pe test
Instead of calling pe function direction in unit test, use the existing state machine task for unit tests. This allows the real code to call into a task_set_event on the PD tasks. See CL:1786462 where this is needed. BRANCH=none BUG=none TEST=run test passes with and without CL:1786462 Signed-off-by: Jett Rink <jettrink@chromium.org> Change-Id: If31f946e2253c724dd314b2b22e2265cf46197f4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2307713 Reviewed-by: Diana Z <dzigterman@chromium.org>
Diffstat (limited to 'test')
-rw-r--r--test/usb_pe.h12
-rw-r--r--test/usb_pe_drp.c38
-rw-r--r--test/usb_pe_drp.tasklist3
3 files changed, 19 insertions, 34 deletions
diff --git a/test/usb_pe.h b/test/usb_pe.h
index 86e4f3eb10..c927437103 100644
--- a/test/usb_pe.h
+++ b/test/usb_pe.h
@@ -14,18 +14,6 @@
*/
#define PORT0 0
-/*
- * Parameters for pe_run
- *
- * pe_run(port, evt, enable)
- * evt - currently ignored in the implementation
- * enable - 0 Disable/1 Enable
- */
-#define EVT_IGNORED 0
-
-#define ENABLED 1
-#define DISABLED 0
-
/**
* usb_pe_drp_sm.c locally defined. If it changes there, it must
* be changed here as well.
diff --git a/test/usb_pe_drp.c b/test/usb_pe_drp.c
index 954b191b5c..1060e62304 100644
--- a/test/usb_pe_drp.c
+++ b/test/usb_pe_drp.c
@@ -53,13 +53,22 @@ bool pd_alt_mode_capable(int port)
return 1;
}
+void pd_set_suspend(int port, int suspend)
+{
+
+}
/**
* Test section
*/
/* PE Fast Role Swap */
static int test_pe_frs(void)
{
- pe_run(PORT0, EVT_IGNORED, ENABLED);
+ /*
+ * TODO: This test should validate PE boundary API differences -- not
+ * internal state changes.
+ */
+
+ task_wait_event(10 * MSEC);
TEST_ASSERT(pe_is_running(PORT0));
/*
@@ -71,7 +80,7 @@ static int test_pe_frs(void)
pe_set_flag(PORT0, PE_FLAGS_VDM_SETUP_DONE);
pe_set_flag(PORT0, PE_FLAGS_EXPLICIT_CONTRACT);
set_state_pe(PORT0, PE_SNK_READY);
- pe_run(PORT0, EVT_IGNORED, ENABLED);
+ task_wait_event(10 * MSEC);
TEST_ASSERT(get_state_pe(PORT0) == PE_SNK_READY);
/*
@@ -83,7 +92,7 @@ static int test_pe_frs(void)
/*
* Verify we detected FRS and ready to start swap
*/
- pe_run(PORT0, EVT_IGNORED, ENABLED);
+ task_wait_event(10 * MSEC);
TEST_ASSERT(get_state_pe(PORT0) == PE_PRS_SNK_SRC_SEND_SWAP);
TEST_ASSERT(pe_chk_flag(PORT0, PE_FLAGS_FAST_ROLE_SWAP_PATH));
TEST_ASSERT(!pe_chk_flag(PORT0, PE_FLAGS_EXPLICIT_CONTRACT));
@@ -91,7 +100,7 @@ static int test_pe_frs(void)
/*
* Make sure that we sent FR_Swap
*/
- pe_run(PORT0, EVT_IGNORED, ENABLED);
+ task_wait_event(10 * MSEC);
TEST_ASSERT(fake_prl_get_last_sent_ctrl_msg(PORT0) == PD_CTRL_FR_SWAP);
TEST_ASSERT(get_state_pe(PORT0) == PE_PRS_SNK_SRC_SEND_SWAP);
TEST_ASSERT(pe_chk_flag(PORT0, PE_FLAGS_FAST_ROLE_SWAP_PATH));
@@ -101,7 +110,7 @@ static int test_pe_frs(void)
*/
rx_emsg[PORT0].header = PD_HEADER(PD_CTRL_ACCEPT, 0, 0, 0, 0, 0, 0);
pe_set_flag(PORT0, PE_FLAGS_MSG_RECEIVED);
- pe_run(PORT0, EVT_IGNORED, ENABLED);
+ task_wait_event(10 * MSEC);
TEST_ASSERT(!pe_chk_flag(PORT0, PE_FLAGS_MSG_RECEIVED));
TEST_ASSERT(get_state_pe(PORT0) == PE_PRS_SNK_SRC_TRANSITION_TO_OFF);
TEST_ASSERT(pe_chk_flag(PORT0, PE_FLAGS_FAST_ROLE_SWAP_PATH));
@@ -112,29 +121,16 @@ static int test_pe_frs(void)
rx_emsg[PORT0].header = PD_HEADER(PD_CTRL_PS_RDY, 0, 0, 0, 0, 0, 0);
pe_set_flag(PORT0, PE_FLAGS_MSG_RECEIVED);
TEST_ASSERT(!tc_is_attached_src(PORT0));
- pe_run(PORT0, EVT_IGNORED, ENABLED);
+ task_wait_event(10 * MSEC);
TEST_ASSERT(!pe_chk_flag(PORT0, PE_FLAGS_MSG_RECEIVED));
TEST_ASSERT(tc_is_attached_src(PORT0));
- TEST_ASSERT(get_state_pe(PORT0) == PE_PRS_SNK_SRC_ASSERT_RP);
- TEST_ASSERT(pe_chk_flag(PORT0, PE_FLAGS_FAST_ROLE_SWAP_PATH));
-
- /*
- * We are now attached source, so move to next state
- */
- pe_run(PORT0, EVT_IGNORED, ENABLED);
TEST_ASSERT(get_state_pe(PORT0) == PE_PRS_SNK_SRC_SOURCE_ON);
TEST_ASSERT(pe_chk_flag(PORT0, PE_FLAGS_FAST_ROLE_SWAP_PATH));
/*
- * Move the time to be after our wait time.
- */
- force_time((timestamp_t)(get_time().val +
- PD_POWER_SUPPLY_TURN_ON_DELAY));
-
- /*
* After delay we are ready to send our PS_RDY
*/
- pe_run(PORT0, EVT_IGNORED, ENABLED);
+ task_wait_event(PD_POWER_SUPPLY_TURN_ON_DELAY);
TEST_ASSERT(get_state_pe(PORT0) == PE_PRS_SNK_SRC_SOURCE_ON);
TEST_ASSERT(pe_chk_flag(PORT0, PE_FLAGS_FAST_ROLE_SWAP_PATH));
TEST_ASSERT(fake_prl_get_last_sent_ctrl_msg(PORT0) == PD_CTRL_PS_RDY);
@@ -143,7 +139,7 @@ static int test_pe_frs(void)
* Fake the Transmit complete and this will bring us to Source Startup
*/
pe_set_flag(PORT0, PE_FLAGS_TX_COMPLETE);
- pe_run(PORT0, EVT_IGNORED, ENABLED);
+ task_wait_event(10 * MSEC);
TEST_ASSERT(get_state_pe(PORT0) == PE_SRC_STARTUP);
TEST_ASSERT(!pe_chk_flag(PORT0, PE_FLAGS_FAST_ROLE_SWAP_PATH));
diff --git a/test/usb_pe_drp.tasklist b/test/usb_pe_drp.tasklist
index 80b3135e56..eb41326e3e 100644
--- a/test/usb_pe_drp.tasklist
+++ b/test/usb_pe_drp.tasklist
@@ -6,4 +6,5 @@
/**
* See CONFIG_TEST_TASK_LIST in config.h for details.
*/
-#define CONFIG_TEST_TASK_LIST
+#define CONFIG_TEST_TASK_LIST \
+ TASK_TEST(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE)