diff options
author | Jett Rink <jettrink@chromium.org> | 2020-07-20 12:02:23 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-07-21 20:56:22 +0000 |
commit | 783ba1855035fa1827a701b1d905dabedbb9bb7a (patch) | |
tree | f9278ff1a325e525d1d8225e26b35ec3db4b51bf /test | |
parent | e2d358b2d8c78067a19defb0beeb15428459ae26 (diff) | |
download | chrome-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.h | 12 | ||||
-rw-r--r-- | test/usb_pe_drp.c | 38 | ||||
-rw-r--r-- | test/usb_pe_drp.tasklist | 3 |
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) |