diff options
author | Paul Fagerburg <pfagerburg@google.com> | 2020-08-14 17:20:04 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-08-31 17:06:13 +0000 |
commit | 33db71602297092026bb714f8b038ac0e7ac593d (patch) | |
tree | 4f40eb0fbcc63acd5d8f4387f7d2d554f80ae6b4 /common/mock/usb_prl_mock.c | |
parent | bd018841f6f2856c949dcf9b6dd462872cd18d7f (diff) | |
download | chrome-ec-33db71602297092026bb714f8b038ac0e7ac593d.tar.gz |
usb_pe_drp: new unit test with mocks
Add a new unit test for usb_pe_drp with mocks for the various
subsystems that it will use.
The fake_prl module is already essentially a mock for the PRL layer,
so just move it into the mocks directory and make it available as
mock to other tests.
BUG=b:163421994
BRANCH=None
TEST=`make runhosttests` succeeds
Signed-off-by: Paul Fagerburg <pfagerburg@google.com>
Change-Id: I2aea3fa0694e8d9e6bae1f47516cb4d5d2a1e714
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2364050
Tested-by: Paul Fagerburg <pfagerburg@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Commit-Queue: Paul Fagerburg <pfagerburg@chromium.org>
Diffstat (limited to 'common/mock/usb_prl_mock.c')
-rw-r--r-- | common/mock/usb_prl_mock.c | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/common/mock/usb_prl_mock.c b/common/mock/usb_prl_mock.c new file mode 100644 index 0000000000..1e9c9c9576 --- /dev/null +++ b/common/mock/usb_prl_mock.c @@ -0,0 +1,96 @@ +/* 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. + * + * Fake Protocol Layer module. + */ +#include <string.h> +#include "common.h" +#include "usb_emsg.h" +#include "usb_prl_sm.h" +#include "mock/usb_prl_mock.h" + +/* Defaults should all be 0 values. */ +struct extended_msg rx_emsg[CONFIG_USB_PD_PORT_MAX_COUNT]; +struct extended_msg tx_emsg[CONFIG_USB_PD_PORT_MAX_COUNT]; + +void mock_prl_reset(void) +{ + /* Reset all values to 0. */ + memset(rx_emsg, 0, sizeof(rx_emsg)); + memset(tx_emsg, 0, sizeof(tx_emsg)); +} + +void prl_end_ams(int port) +{} + +void prl_execute_hard_reset(int port) +{} + +enum pd_rev_type prl_get_rev(int port, enum tcpm_transmit_type partner) +{ + return PD_REV30; +} + +void prl_hard_reset_complete(int port) +{} + +int prl_is_running(int port) +{ + return 1; +} + +__overridable bool prl_is_busy(int port) +{ + return false; +} + +void prl_reset(int port) +{} + +void prl_reset_soft(int port) +{} + +static enum pd_ctrl_msg_type last_ctrl_msg[CONFIG_USB_PD_PORT_MAX_COUNT]; +static enum pd_data_msg_type last_data_msg_type[CONFIG_USB_PD_PORT_MAX_COUNT]; + +void prl_send_ctrl_msg(int port, enum tcpm_transmit_type type, + enum pd_ctrl_msg_type msg) +{ + last_ctrl_msg[port] = msg; +} + +void prl_send_data_msg(int port, enum tcpm_transmit_type type, + enum pd_data_msg_type msg) +{ + last_data_msg_type[port] = msg; +} + +void prl_send_ext_data_msg(int port, enum tcpm_transmit_type type, + enum pd_ext_msg_type msg) +{} + +void prl_set_rev(int port, enum tcpm_transmit_type partner, + enum pd_rev_type rev) +{} + + +enum pd_ctrl_msg_type fake_prl_get_last_sent_ctrl_msg(int port) +{ + return last_ctrl_msg[port]; +} + +void fake_prl_clear_last_sent_ctrl_msg(int port) +{ + last_ctrl_msg[port] = 0; +} + +enum pd_data_msg_type fake_prl_get_last_sent_data_msg_type(int port) +{ + return last_data_msg_type[port]; +} + +void fake_prl_clear_last_sent_data_msg(int port) +{ + last_data_msg_type[port] = 0; +} |