summaryrefslogtreecommitdiff
path: root/common/mock/usb_prl_mock.c
diff options
context:
space:
mode:
authorPaul Fagerburg <pfagerburg@google.com>2020-08-14 17:20:04 -0600
committerCommit Bot <commit-bot@chromium.org>2020-08-31 17:06:13 +0000
commit33db71602297092026bb714f8b038ac0e7ac593d (patch)
tree4f40eb0fbcc63acd5d8f4387f7d2d554f80ae6b4 /common/mock/usb_prl_mock.c
parentbd018841f6f2856c949dcf9b6dd462872cd18d7f (diff)
downloadchrome-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.c96
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;
+}