summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbe Levkoy <alevkoy@chromium.org>2020-12-07 17:39:09 -0700
committerCommit Bot <commit-bot@chromium.org>2020-12-15 15:39:18 +0000
commit0a561def48d4e673c834f4d01506ba8b9886cdd4 (patch)
treecbca0104ac3fe7058c0d58d14abd95decb39da6e
parent160208413d16840428e42ecae18457e862e6ed49 (diff)
downloadchrome-ec-0a561def48d4e673c834f4d01506ba8b9886cdd4.tar.gz
mock: Clean up TCPMv2 mocks
Place mock functions in the mock libraries corresponding to the layers of the real implementations. Broadly, move towards one layer of the TCPM stack as a UUT, with mocks for the other layers as needed. There should be a one-to-one correspondence between real modules and mock modules. usb_pd_mock.c does not correspond to any real implementation module or TCPM stack layer, so remove it and move its contents to the layers corresponding to their real implementations. Also clean up some redundant or misplaced mocks inside tests. BUG=b:153071799,b:173791979 TEST=make buildall BRANCH=none Signed-off-by: Abe Levkoy <alevkoy@chromium.org> Change-Id: Ic44df8675de2b9f1f8c7669cd97dcdc296bf107f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2578200 Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org> Commit-Queue: Paul Fagerburg <pfagerburg@chromium.org>
-rw-r--r--common/mock/build.mk1
-rw-r--r--common/mock/usb_pd_mock.c101
-rw-r--r--common/mock/usb_pe_sm_mock.c26
-rw-r--r--common/mock/usb_prl_mock.c1
-rw-r--r--common/mock/usb_tc_sm_mock.c61
-rw-r--r--common/usbc/usb_tc_drp_acc_trysrc_sm.c4
-rw-r--r--include/mock/usb_pd_mock.h23
-rw-r--r--include/mock/usb_tc_sm_mock.h3
-rw-r--r--test/usb_pe_drp.c6
-rw-r--r--test/usb_pe_drp.mocklist1
-rw-r--r--test/usb_pe_drp_noextended.mocklist1
-rw-r--r--test/usb_prl.c5
-rw-r--r--test/usb_prl.mocklist1
-rw-r--r--test/usb_typec_drp_acc_trysrc.c13
14 files changed, 99 insertions, 148 deletions
diff --git a/common/mock/build.mk b/common/mock/build.mk
index 5f2d548825..bc824259a6 100644
--- a/common/mock/build.mk
+++ b/common/mock/build.mk
@@ -14,7 +14,6 @@ mock-$(HAS_MOCK_TCPM) += tcpm_mock.o
mock-$(HAS_MOCK_TCPCI_I2C) += tcpci_i2c_mock.o
mock-$(HAS_MOCK_TIMER) += timer_mock.o
mock-$(HAS_MOCK_USB_MUX) += usb_mux_mock.o
-mock-$(HAS_MOCK_USB_PD) += usb_pd_mock.o
mock-$(HAS_MOCK_USB_PE_SM) += usb_pe_sm_mock.o
mock-$(HAS_MOCK_USB_TC_SM) += usb_tc_sm_mock.o
mock-$(HAS_MOCK_USB_PD_DPM) += usb_pd_dpm_mock.o
diff --git a/common/mock/usb_pd_mock.c b/common/mock/usb_pd_mock.c
deleted file mode 100644
index b699fd72ec..0000000000
--- a/common/mock/usb_pd_mock.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Copyright 2020 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.
- */
-
-/* Mock USB Type-C PD */
-
-#include "common.h"
-#include "console.h"
-#include "usb_pd.h"
-#include "mock/usb_pd_mock.h"
-#include "memory.h"
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-struct mock_pd_port_t mock_pd_port[CONFIG_USB_PD_PORT_MAX_COUNT];
-
-void mock_pd_reset(void)
-{
- /* Reset all values to 0. */
- memset(mock_pd_port, 0, sizeof(mock_pd_port));
-}
-
-enum pd_dual_role_states pd_get_dual_role(int port)
-{
- return PD_DRP_TOGGLE_ON;
-}
-
-enum pd_data_role pd_get_data_role(int port)
-{
- return mock_pd_port[port].data_role;
-}
-
-enum pd_power_role pd_get_power_role(int port)
-{
- return mock_pd_port[port].power_role;
-}
-
-enum pd_cc_states pd_get_task_cc_state(int port)
-{
- return PD_CC_NONE;
-}
-
-int pd_is_connected(int port)
-{
- return 1;
-}
-
-bool pd_is_disconnected(int port)
-{
- return false;
-}
-
-__overridable const uint32_t * const pd_get_src_caps(int port)
-{
- return NULL;
-}
-
-__overridable uint8_t pd_get_src_cap_cnt(int port)
-{
- return 0;
-}
-
-__overridable void pd_set_src_caps(int port, int cnt, uint32_t *src_caps)
-{
-}
-
-bool pd_get_partner_usb_comm_capable(int port)
-{
- return true;
-}
-
-inline uint8_t board_get_usb_pd_port_count(void)
-{
- return CONFIG_USB_PD_PORT_MAX_COUNT;
-}
-
-void pd_set_suspend(int port, int suspend)
-{
-}
-
-enum tcpc_cc_polarity pd_get_polarity(int port)
-{
- return POLARITY_CC1;
-}
-
-void pd_request_data_swap(int port)
-{}
-
-void pd_request_vconn_swap_off(int port)
-{}
-
-void pd_request_vconn_swap_on(int port)
-{}
-
-bool pd_alt_mode_capable(int port)
-{
- return false;
-}
diff --git a/common/mock/usb_pe_sm_mock.c b/common/mock/usb_pe_sm_mock.c
index 0a47f22387..e7e9230901 100644
--- a/common/mock/usb_pe_sm_mock.c
+++ b/common/mock/usb_pe_sm_mock.c
@@ -7,6 +7,7 @@
#include "common.h"
#include "console.h"
+#include "usb_pd.h"
#include "usb_pe_sm.h"
#include "mock/usb_pe_sm_mock.h"
#include "memory.h"
@@ -86,3 +87,28 @@ bool pe_in_local_ams(int port)
return false;
}
+const uint32_t * const pd_get_src_caps(int port)
+{
+ return NULL;
+}
+
+uint8_t pd_get_src_cap_cnt(int port)
+{
+ return 0;
+}
+
+void pd_set_src_caps(int port, int cnt, uint32_t *src_caps)
+{
+}
+
+void pd_request_power_swap(int port)
+{}
+
+int pd_get_rev(int port, enum tcpm_transmit_type type)
+{
+ return IS_ENABLED(CONFIG_USB_PD_REV30) ? PD_REV30 : PD_REV20;
+}
+
+void pe_invalidate_explicit_contract(int port)
+{
+}
diff --git a/common/mock/usb_prl_mock.c b/common/mock/usb_prl_mock.c
index cb4b035ff4..5dba2b2805 100644
--- a/common/mock/usb_prl_mock.c
+++ b/common/mock/usb_prl_mock.c
@@ -126,6 +126,7 @@ int mock_prl_wait_for_tx_msg(int port,
}
task_wait_event(5 * MSEC);
}
+ /* A message of the expected type should have been sent by end_time. */
TEST_ASSERT(0);
return EC_ERROR_UNKNOWN;
}
diff --git a/common/mock/usb_tc_sm_mock.c b/common/mock/usb_tc_sm_mock.c
index ebbbb43bb3..71609cb2b2 100644
--- a/common/mock/usb_tc_sm_mock.c
+++ b/common/mock/usb_tc_sm_mock.c
@@ -7,6 +7,7 @@
#include "common.h"
#include "console.h"
+#include "ec_commands.h"
#include "usb_tc_sm.h"
#include "mock/usb_tc_sm_mock.h"
#include "memory.h"
@@ -35,6 +36,8 @@ void mock_tc_port_reset(void)
mock_tc_port[port].attached_snk = 0;
mock_tc_port[port].attached_src = 0;
mock_tc_port[port].vconn_src = false;
+ mock_tc_port[port].data_role = PD_ROLE_UFP;
+ mock_tc_port[port].power_role = PD_ROLE_SINK;
}
}
@@ -128,3 +131,61 @@ void tc_snk_power_off(int port)
void tc_request_power_swap(int port)
{
}
+
+enum pd_dual_role_states pd_get_dual_role(int port)
+{
+ return PD_DRP_TOGGLE_ON;
+}
+
+enum pd_data_role pd_get_data_role(int port)
+{
+ return mock_tc_port[port].data_role;
+}
+
+enum pd_power_role pd_get_power_role(int port)
+{
+ return mock_tc_port[port].power_role;
+}
+
+enum pd_cc_states pd_get_task_cc_state(int port)
+{
+ return PD_CC_NONE;
+}
+
+int pd_is_connected(int port)
+{
+ return 1;
+}
+
+bool pd_is_disconnected(int port)
+{
+ return false;
+}
+
+bool pd_get_partner_usb_comm_capable(int port)
+{
+ return true;
+}
+
+void pd_set_suspend(int port, int suspend)
+{
+}
+
+enum tcpc_cc_polarity pd_get_polarity(int port)
+{
+ return POLARITY_CC1;
+}
+
+void pd_request_data_swap(int port)
+{}
+
+void pd_request_vconn_swap_off(int port)
+{}
+
+void pd_request_vconn_swap_on(int port)
+{}
+
+bool pd_alt_mode_capable(int port)
+{
+ return false;
+}
diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
index fa146b3bfa..519dbab8f6 100644
--- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c
+++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
@@ -517,6 +517,10 @@ uint8_t pd_get_snk_cap_cnt(int port)
return 0;
}
+void pd_set_src_caps(int port, int cnt, uint32_t *src_caps)
+{
+}
+
#endif /* !CONFIG_USB_PR_SM */
void pd_update_contract(int port)
diff --git a/include/mock/usb_pd_mock.h b/include/mock/usb_pd_mock.h
deleted file mode 100644
index 353437d3e3..0000000000
--- a/include/mock/usb_pd_mock.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2020 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.
- */
-/* Mock USB PD */
-
-#ifndef __MOCK_USB_PD_MOCK_H
-#define __MOCK_USB_PD_MOCK_H
-
-#include "common.h"
-#include "usb_pd.h"
-
-/* Defaults should all be 0 values. */
-struct mock_pd_port_t {
- enum pd_data_role data_role;
- enum pd_power_role power_role;
-};
-
-extern struct mock_pd_port_t mock_pd_port[CONFIG_USB_PD_PORT_MAX_COUNT];
-
-void mock_pd_reset(void);
-
-#endif /* __MOCK_USB_PD_MOCK_H */
diff --git a/include/mock/usb_tc_sm_mock.h b/include/mock/usb_tc_sm_mock.h
index f5c599ca1f..1120ea850b 100644
--- a/include/mock/usb_tc_sm_mock.h
+++ b/include/mock/usb_tc_sm_mock.h
@@ -9,6 +9,7 @@
#include "common.h"
#include "usb_tc_sm.h"
+#include "usb_pd.h"
struct mock_tc_port_t {
int rev;
@@ -20,6 +21,8 @@ struct mock_tc_port_t {
int attached_snk;
int attached_src;
bool vconn_src;
+ enum pd_data_role data_role;
+ enum pd_power_role power_role;
};
extern struct mock_tc_port_t mock_tc_port[CONFIG_USB_PD_PORT_MAX_COUNT];
diff --git a/test/usb_pe_drp.c b/test/usb_pe_drp.c
index be040dff0c..10269db779 100644
--- a/test/usb_pe_drp.c
+++ b/test/usb_pe_drp.c
@@ -16,7 +16,6 @@
#include "mock/usb_tc_sm_mock.h"
#include "mock/tcpc_mock.h"
#include "mock/usb_mux_mock.h"
-#include "mock/usb_pd_mock.h"
#include "mock/usb_pd_dpm_mock.h"
#include "mock/dp_alt_mode_mock.h"
#include "mock/usb_prl_mock.h"
@@ -39,7 +38,6 @@ void before_test(void)
mock_tc_port_reset();
mock_tcpc_reset();
mock_usb_mux_reset();
- mock_pd_reset();
mock_dpm_reset();
mock_dp_alt_mode_reset();
mock_prl_reset();
@@ -138,7 +136,7 @@ test_static int finish_src_discovery(void)
test_static int test_send_caps_error_before_connected(void)
{
/* Enable PE as source, expect SOURCE_CAP. */
- mock_pd_port[PORT0].power_role = PD_ROLE_SOURCE;
+ mock_tc_port[PORT0].power_role = PD_ROLE_SOURCE;
mock_tc_port[PORT0].pd_enable = 1;
mock_tc_port[PORT0].vconn_src = true;
TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP,
@@ -205,7 +203,7 @@ test_static int test_send_caps_error_before_connected(void)
test_static int test_send_caps_error_when_connected(void)
{
/* Enable PE as source, expect SOURCE_CAP. */
- mock_pd_port[PORT0].power_role = PD_ROLE_SOURCE;
+ mock_tc_port[PORT0].power_role = PD_ROLE_SOURCE;
mock_tc_port[PORT0].pd_enable = 1;
mock_tc_port[PORT0].vconn_src = true;
TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP,
diff --git a/test/usb_pe_drp.mocklist b/test/usb_pe_drp.mocklist
index b690044789..1d8e4c8a81 100644
--- a/test/usb_pe_drp.mocklist
+++ b/test/usb_pe_drp.mocklist
@@ -5,7 +5,6 @@
#define CONFIG_TEST_MOCK_LIST \
MOCK(USB_TC_SM) \
- MOCK(USB_PD) \
MOCK(TCPC) \
MOCK(USB_MUX) \
MOCK(USB_PD_DPM) \
diff --git a/test/usb_pe_drp_noextended.mocklist b/test/usb_pe_drp_noextended.mocklist
index b690044789..1d8e4c8a81 100644
--- a/test/usb_pe_drp_noextended.mocklist
+++ b/test/usb_pe_drp_noextended.mocklist
@@ -5,7 +5,6 @@
#define CONFIG_TEST_MOCK_LIST \
MOCK(USB_TC_SM) \
- MOCK(USB_PD) \
MOCK(TCPC) \
MOCK(USB_MUX) \
MOCK(USB_PD_DPM) \
diff --git a/test/usb_prl.c b/test/usb_prl.c
index d0f3d48322..c381295abf 100644
--- a/test/usb_prl.c
+++ b/test/usb_prl.c
@@ -7,7 +7,6 @@
#include "common.h"
#include "mock/tcpc_mock.h"
#include "mock/tcpm_mock.h"
-#include "mock/usb_pd_mock.h"
#include "mock/usb_pe_sm_mock.h"
#include "mock/usb_tc_sm_mock.h"
#include "task.h"
@@ -140,8 +139,8 @@ void before_test(void)
{
mock_tc_port_reset();
mock_tc_port[PORT0].rev = PD_REV30;
- mock_pd_port[PORT0].power_role = PD_ROLE_SOURCE;
- mock_pd_port[PORT0].data_role = PD_ROLE_DFP;
+ mock_tc_port[PORT0].power_role = PD_ROLE_SOURCE;
+ mock_tc_port[PORT0].data_role = PD_ROLE_DFP;
mock_tcpm_reset();
mock_pe_port_reset();
diff --git a/test/usb_prl.mocklist b/test/usb_prl.mocklist
index c89e12e78b..bf5357334a 100644
--- a/test/usb_prl.mocklist
+++ b/test/usb_prl.mocklist
@@ -6,6 +6,5 @@
#define CONFIG_TEST_MOCK_LIST \
MOCK(TCPC) \
MOCK(TCPM) \
- MOCK(USB_PD) \
MOCK(USB_PE_SM) \
MOCK(USB_TC_SM)
diff --git a/test/usb_typec_drp_acc_trysrc.c b/test/usb_typec_drp_acc_trysrc.c
index 605d133934..f33c7079cf 100644
--- a/test/usb_typec_drp_acc_trysrc.c
+++ b/test/usb_typec_drp_acc_trysrc.c
@@ -27,19 +27,6 @@
/* Unreachable time in future */
#define TIMER_DISABLED 0xffffffffffffffff
-/* TODO(b/153071799): Move these pd_* and pe_* function into mock */
-__overridable void pd_request_power_swap(int port)
-{}
-
-void pd_set_src_caps(int port, int cnt, uint32_t *src_caps)
-{
-}
-
-__overridable void pe_invalidate_explicit_contract(int port)
-{
-}
-/* End pd_ mock section */
-
/* Install Mock TCPC and MUX drivers */
const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
{