diff options
author | Jack Rosenthal <jrosenth@chromium.org> | 2021-11-04 12:11:58 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-11-05 04:22:34 +0000 |
commit | 252457d4b21f46889eebad61d4c0a65331919cec (patch) | |
tree | 01856c4d31d710b20e85a74c8d7b5836e35c3b98 /test/usb_prl.c | |
parent | 08f5a1e6fc2c9467230444ac9b582dcf4d9f0068 (diff) | |
download | chrome-ec-stabilize-14336.B-ish.tar.gz |
ish: Trim down the release branchstabilize-wristpin-14469.59.B-ishstabilize-voshyr-14637.B-ishstabilize-quickfix-14695.187.B-ishstabilize-quickfix-14695.124.B-ishstabilize-quickfix-14526.91.B-ishstabilize-14695.85.B-ishstabilize-14695.107.B-ishstabilize-14682.B-ishstabilize-14633.B-ishstabilize-14616.B-ishstabilize-14589.B-ishstabilize-14588.98.B-ishstabilize-14588.14.B-ishstabilize-14588.123.B-ishstabilize-14536.B-ishstabilize-14532.B-ishstabilize-14528.B-ishstabilize-14526.89.B-ishstabilize-14526.84.B-ishstabilize-14526.73.B-ishstabilize-14526.67.B-ishstabilize-14526.57.B-ishstabilize-14498.B-ishstabilize-14496.B-ishstabilize-14477.B-ishstabilize-14469.9.B-ishstabilize-14469.8.B-ishstabilize-14469.58.B-ishstabilize-14469.41.B-ishstabilize-14442.B-ishstabilize-14438.B-ishstabilize-14411.B-ishstabilize-14396.B-ishstabilize-14395.B-ishstabilize-14388.62.B-ishstabilize-14388.61.B-ishstabilize-14388.52.B-ishstabilize-14385.B-ishstabilize-14345.B-ishstabilize-14336.B-ishstabilize-14333.B-ishrelease-R99-14469.B-ishrelease-R98-14388.B-ishrelease-R102-14695.B-ishrelease-R101-14588.B-ishrelease-R100-14526.B-ishfirmware-cherry-14454.B-ishfirmware-brya-14505.B-ishfirmware-brya-14505.71.B-ishfactory-kukui-14374.B-ishfactory-guybrush-14600.B-ishfactory-cherry-14455.B-ishfactory-brya-14517.B-ish
In the interest of making long-term branch maintenance incur as little
technical debt on us as possible, we should not maintain any files on
the branch we are not actually using.
This has the added effect of making it extremely clear when merging CLs
from the main branch when changes have the possibility to affect us.
The follow-on CL adds a convenience script to actually pull updates from
the main branch and generate a CL for the update.
BUG=b:204206272
BRANCH=ish
TEST=make BOARD=arcada_ish && make BOARD=drallion_ish
Signed-off-by: Jack Rosenthal <jrosenth@chromium.org>
Change-Id: I17e4694c38219b5a0823e0a3e55a28d1348f4b18
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3262038
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Tom Hughes <tomhughes@chromium.org>
Diffstat (limited to 'test/usb_prl.c')
-rw-r--r-- | test/usb_prl.c | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/test/usb_prl.c b/test/usb_prl.c deleted file mode 100644 index 061bb1ad3c..0000000000 --- a/test/usb_prl.c +++ /dev/null @@ -1,170 +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. - * - * Test USB Protocol Layer module. - */ -#include "common.h" -#include "mock/tcpc_mock.h" -#include "mock/tcpm_mock.h" -#include "mock/usb_pe_sm_mock.h" -#include "mock/usb_tc_sm_mock.h" -#include "task.h" -#include "tcpm/tcpci.h" -#include "tcpm/tcpm.h" -#include "test_util.h" -#include "timer.h" -#include "usb_emsg.h" -#include "usb_pd.h" -#include "usb_pd_test_util.h" -#include "usb_pe_sm.h" -#include "usb_prl_sm.h" -#include "usb_sm_checks.h" -#include "usb_tc_sm.h" -#include "util.h" - -#define PORT0 0 - -/* Install Mock TCPC and MUX drivers */ -const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = { - { - .drv = &mock_tcpc_driver, - }, -}; - -static void enable_prl(int port, int en) -{ - tcpm_set_rx_enable(port, en); - - mock_tc_port[port].pd_enable = en; - - task_wait_event(10*MSEC); - - prl_set_rev(port, TCPCI_MSG_SOP, mock_tc_port[port].rev); -} - -static int test_receive_control_msg(void) -{ - int port = PORT0; - uint16_t header = PD_HEADER(PD_CTRL_DR_SWAP, - pd_get_power_role(port), - pd_get_data_role(port), - mock_tc_port[port].msg_rx_id, - 0, mock_tc_port[port].rev, 0); - - /* Set up the message to be received. */ - mock_tcpm_rx_msg(port, header, 0, NULL); - - /* Process the message. */ - task_wait_event(10*MSEC); - - /* Check results. */ - TEST_NE(mock_pe_port[port].mock_pe_message_received, 0, "%d"); - TEST_EQ(header, rx_emsg[port].header, "%d"); - TEST_EQ(rx_emsg[port].len, 0, "%d"); - - TEST_LE(mock_pe_port[port].mock_pe_error, 0, "%d"); - TEST_EQ(mock_pe_port[port].mock_pe_message_discarded, 0, "%d"); - TEST_EQ(mock_pe_port[port].mock_got_soft_reset, 0, "%d"); - TEST_EQ(mock_pe_port[port].mock_pe_got_hard_reset, 0, "%d"); - TEST_EQ(mock_pe_port[port].mock_pe_hard_reset_sent, 0, "%d"); - - return EC_SUCCESS; -} - -static int test_send_control_msg(void) -{ - int port = PORT0; - - /* Set up the message to be sent. */ - prl_send_ctrl_msg(port, TCPCI_MSG_SOP, PD_CTRL_ACCEPT); - task_wait_event(MSEC); - /* Simulate the TX complete that the PD_INT handler would signal */ - pd_transmit_complete(port, TCPC_TX_COMPLETE_SUCCESS); - - task_wait_event(10*MSEC); - - /* Check results. */ - TEST_NE(mock_pe_port[port].mock_pe_message_sent, 0, "%d"); - TEST_LE(mock_pe_port[port].mock_pe_error, 0, "%d"); - TEST_EQ(mock_pe_port[port].mock_pe_message_discarded, 0, "%d"); - TEST_EQ(mock_pe_port[port].mock_got_soft_reset, 0, "%d"); - TEST_EQ(mock_pe_port[port].mock_pe_got_hard_reset, 0, "%d"); - TEST_EQ(mock_pe_port[port].mock_pe_hard_reset_sent, 0, "%d"); - - return EC_SUCCESS; -} - -static int test_discard_queued_tx_when_rx_happens(void) -{ - int port = PORT0; - uint16_t header = PD_HEADER(PD_CTRL_DR_SWAP, - pd_get_power_role(port), - pd_get_data_role(port), - mock_tc_port[port].msg_rx_id, - 0, mock_tc_port[port].rev, 0); - uint8_t *buf = tx_emsg[port].buf; - uint8_t len = 8; - uint8_t i = 0; - - /* Set up the message to be sent. */ - for (i = 0 ; i < len ; i++) - buf[i] = (uint8_t)i; - - tx_emsg[port].len = len; - prl_send_data_msg(port, TCPCI_MSG_SOP, PD_DATA_SOURCE_CAP); - - /* Set up the message to be received. */ - mock_tcpm_rx_msg(port, header, 0, NULL); - - /* Process the message. */ - task_wait_event(10*MSEC); - - /* Check results. Source should have discarded its message queued up - * to TX, and should have received the message from the sink. - */ - TEST_NE(mock_pe_port[port].mock_pe_message_discarded, 0, "%d"); - TEST_NE(mock_pe_port[port].mock_pe_message_received, 0, "%d"); - TEST_EQ(mock_pe_port[port].mock_pe_message_sent, 0, "%d"); - - TEST_LE(mock_pe_port[port].mock_pe_error, 0, "%d"); - TEST_EQ(mock_pe_port[port].mock_got_soft_reset, 0, "%d"); - TEST_EQ(mock_pe_port[port].mock_pe_got_hard_reset, 0, "%d"); - TEST_EQ(mock_pe_port[port].mock_pe_hard_reset_sent, 0, "%d"); - - return EC_SUCCESS; -} - -void before_test(void) -{ - mock_tc_port_reset(); - mock_tc_port[PORT0].rev = PD_REV30; - 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(); - - prl_reset_soft(PORT0); - enable_prl(PORT0, 1); -} - -void after_test(void) -{ - enable_prl(PORT0, 0); -} - -void run_test(int argc, char **argv) -{ - RUN_TEST(test_receive_control_msg); - RUN_TEST(test_send_control_msg); - RUN_TEST(test_discard_queued_tx_when_rx_happens); - /* TODO add tests here */ - - - /* Do basic state machine validity checks last. */ - RUN_TEST(test_prl_no_parent_cycles); - RUN_TEST(test_prl_all_states_named); - - test_print_result(); -} |