diff options
author | Al Semjonovs <asemjonovs@google.com> | 2022-04-27 11:37:09 -0600 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-04-29 15:46:28 +0000 |
commit | b4bb00f5cc0dc1d21f05ac5f0022208dac42d303 (patch) | |
tree | e0d2099b2dfc8ba554ef5947113020869bbaab40 | |
parent | 320ab3ce3b8329bb1490865a1547ec2698666c89 (diff) | |
download | chrome-ec-b4bb00f5cc0dc1d21f05ac5f0022208dac42d303.tar.gz |
zephyr:test: Add ping message support/test
Add ping message support to emulator and verify it via
test case.
BUG=b:23062456
BRANCH=NONE
TEST=zmake test test-drivers
Signed-off-by: Al Semjonovs <asemjonovs@google.com>
Change-Id: Ic71b71ef728469282966c8e00168b9a2d21a8621
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3612204
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
-rw-r--r-- | zephyr/emul/tcpc/emul_tcpci_partner_snk.c | 6 | ||||
-rw-r--r-- | zephyr/include/emul/tcpc/emul_tcpci_partner_snk.h | 9 | ||||
-rw-r--r-- | zephyr/test/drivers/src/integration/usbc/usb_5v_3a_pd_sink.c | 22 |
3 files changed, 37 insertions, 0 deletions
diff --git a/zephyr/emul/tcpc/emul_tcpci_partner_snk.c b/zephyr/emul/tcpc/emul_tcpci_partner_snk.c index 6071a006e3..1faa82a4a7 100644 --- a/zephyr/emul/tcpc/emul_tcpci_partner_snk.c +++ b/zephyr/emul/tcpc/emul_tcpci_partner_snk.c @@ -340,6 +340,11 @@ tcpci_snk_emul_handle_goto_min_req(struct tcpci_snk_emul_data *data, return TCPCI_PARTNER_COMMON_MSG_HANDLED; } +void tcpci_snk_emul_clear_ping_received(struct tcpci_snk_emul_data *data) +{ + data->ping_received = false; +} + /** Check description in emul_tcpci_snk.h */ enum tcpci_partner_handler_res tcpci_snk_emul_handle_sop_msg( struct tcpci_snk_emul_data *data, @@ -368,6 +373,7 @@ enum tcpci_partner_handler_res tcpci_snk_emul_handle_sop_msg( 0); return TCPCI_PARTNER_COMMON_MSG_HANDLED; case PD_CTRL_PING: + data->ping_received = true; return TCPCI_PARTNER_COMMON_MSG_HANDLED; case PD_CTRL_GOTO_MIN: return tcpci_snk_emul_handle_goto_min_req(data, diff --git a/zephyr/include/emul/tcpc/emul_tcpci_partner_snk.h b/zephyr/include/emul/tcpc/emul_tcpci_partner_snk.h index 0671fb7e2e..0c05768d31 100644 --- a/zephyr/include/emul/tcpc/emul_tcpci_partner_snk.h +++ b/zephyr/include/emul/tcpc/emul_tcpci_partner_snk.h @@ -35,6 +35,8 @@ struct tcpci_snk_emul_data { bool wait_for_ps_rdy; /** PS RDY was received and PD negotiation is completed */ bool pd_completed; + /** PD_CTRL_PING message received */ + bool ping_received; }; /** Structure describing standalone sink device emulator */ @@ -107,6 +109,13 @@ enum tcpci_partner_handler_res tcpci_snk_emul_handle_sop_msg( void tcpci_snk_emul_hard_reset(void *data); /** + * @brief Clear the ping received flag. + * + * @param sink_data + */ +void tcpci_snk_emul_clear_ping_received(struct tcpci_snk_emul_data *sink_data); + +/** * @} */ diff --git a/zephyr/test/drivers/src/integration/usbc/usb_5v_3a_pd_sink.c b/zephyr/test/drivers/src/integration/usbc/usb_5v_3a_pd_sink.c index 9d29f4bacb..3f6925be25 100644 --- a/zephyr/test/drivers/src/integration/usbc/usb_5v_3a_pd_sink.c +++ b/zephyr/test/drivers/src/integration/usbc/usb_5v_3a_pd_sink.c @@ -13,6 +13,7 @@ #include "tcpm/tcpci.h" #include "test/drivers/test_state.h" #include "test/drivers/utils.h" +#include "timer.h" #include "usb_pd.h" struct usb_attach_5v_3a_pd_sink_fixture { @@ -267,3 +268,24 @@ ZTEST_F(usb_attach_5v_3a_pd_sink, verify_goto_min) zassert_true(this->sink_5v_3a.data.pd_completed, NULL); } + +/** + * @brief TestPurpose: Verify Ping message. + * + * @details + * - TCPM is configured initially as Source + * - Initiate Ping request + * - Verify emulated sink received ping message + * + * Expected Results + * - Sink received ping message + */ +ZTEST_F(usb_attach_5v_3a_pd_sink, verify_ping_msg) +{ + tcpci_snk_emul_clear_ping_received(&this->sink_5v_3a.data); + + pd_dpm_request(0, DPM_REQUEST_SEND_PING); + k_sleep(K_USEC(PD_T_SOURCE_ACTIVITY)); + + zassert_true(this->sink_5v_3a.data.ping_received, NULL); +} |