diff options
author | Aaron Massey <aaronmassey@google.com> | 2022-02-10 10:24:35 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2022-02-14 18:12:26 +0000 |
commit | 8fa91dfd550014ece1469e123ea7876c12766888 (patch) | |
tree | 71993f3d91c4f02e44b7fef19681d6fe03b99b24 | |
parent | 49a5caf5215227362e13f379dbb1513165e33eb6 (diff) | |
download | chrome-ec-8fa91dfd550014ece1469e123ea7876c12766888.tar.gz |
zephyr: test: Unify split src then snk usb tests
The attach src then snk integration tests were too concise by only doing
a single assertion per test, where each member of the struct returned by
the PD info host command contained its own test. This resulted in
unnecessary boilerplate and redundant executions of the PD info host
command.
Combine tests to verify entire response for each invocation of the PD
info host command.
BRANCH=none
BUG=b:209907615
TEST=zmake configure --test test-drivers
Signed-off-by: Aaron Massey <aaronmassey@google.com>
Change-Id: Ie1d1bdd863c518c67eae94fac94c0c759a4c59b4
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3453166
Reviewed-by: Jeremy Bettis <jbettis@chromium.org>
-rw-r--r-- | zephyr/test/drivers/src/integration/usbc/usb_attach_src_snk.c | 218 |
1 files changed, 16 insertions, 202 deletions
diff --git a/zephyr/test/drivers/src/integration/usbc/usb_attach_src_snk.c b/zephyr/test/drivers/src/integration/usbc/usb_attach_src_snk.c index 927df4cc1d..500801915f 100644 --- a/zephyr/test/drivers/src/integration/usbc/usb_attach_src_snk.c +++ b/zephyr/test/drivers/src/integration/usbc/usb_attach_src_snk.c @@ -141,7 +141,7 @@ static void integration_usb_attach_src_then_snk_after(void *state) isl923x_emul_set_adc_vbus(charger_emul, 0); } -ZTEST_F(integration_usb_attach_src_then_snk, attached_src_port_role) +ZTEST_F(integration_usb_attach_src_then_snk, verify_snk_port_pd_info) { struct ec_params_usb_pd_power_info params = { .port = SNK_PORT }; struct ec_response_usb_pd_power_info response; @@ -155,169 +155,33 @@ ZTEST_F(integration_usb_attach_src_then_snk, attached_src_port_role) zassert_equal(response.role, USB_PD_PORT_POWER_SINK, "Power role %d, but PD reports role %d", USB_PD_PORT_POWER_SINK, response.role); -} - -ZTEST_F(integration_usb_attach_src_then_snk, attached_src_port_charger_type) -{ - struct ec_params_usb_pd_power_info params = { .port = SNK_PORT }; - struct ec_response_usb_pd_power_info response; - struct host_cmd_handler_args args = BUILD_HOST_COMMAND( - EC_CMD_USB_PD_POWER_INFO, 0, response, params); - - /* Assume */ - zassume_ok(host_command_process(&args), "Failed to get PD power info"); - - zassume_equal(response.role, USB_PD_PORT_POWER_SINK, - "Power role %d, but PD reports role %d", - USB_PD_PORT_POWER_SINK, response.role); - - /* Assert */ zassert_equal(response.type, USB_CHG_TYPE_PD, "Charger type %d, but PD reports type %d", USB_CHG_TYPE_PD, response.type); -} -ZTEST_F(integration_usb_attach_src_then_snk, - attached_src_port_default_max_voltage) -{ - struct ec_params_usb_pd_power_info params = { .port = SNK_PORT }; - struct ec_response_usb_pd_power_info response; - struct host_cmd_handler_args args = BUILD_HOST_COMMAND( - EC_CMD_USB_PD_POWER_INFO, 0, response, params); - - /* Assume */ - zassume_ok(host_command_process(&args), "Failed to get PD power info"); - - zassume_equal(response.role, USB_PD_PORT_POWER_SINK, - "Power role %d, but PD reports role %d", - USB_PD_PORT_POWER_SINK, response.role); - - zassume_equal(response.type, USB_CHG_TYPE_PD, - "Charger type %d, but PD reports type %d", - USB_CHG_TYPE_PD, response.type); - - /* Assert */ + /* Verify Default 5V and 3A */ zassert_equal(response.meas.voltage_max, 5000, "Charging at VBUS %dmV, but PD reports %dmV", 5000, response.meas.voltage_max); -} - -ZTEST_F(integration_usb_attach_src_then_snk, - attached_src_port_default_voltage_now) -{ - struct ec_params_usb_pd_power_info params = { .port = SNK_PORT }; - struct ec_response_usb_pd_power_info response; - struct host_cmd_handler_args args = BUILD_HOST_COMMAND( - EC_CMD_USB_PD_POWER_INFO, 0, response, params); - - /* Assume */ - zassume_ok(host_command_process(&args), "Failed to get PD power info"); - - zassume_equal(response.role, USB_PD_PORT_POWER_SINK, - "Power role %d, but PD reports role %d", - USB_PD_PORT_POWER_SINK, response.role); - - zassume_equal(response.type, USB_CHG_TYPE_PD, - "Charger type %d, but PD reports type %d", - USB_CHG_TYPE_PD, response.type); - - zassume_equal(response.meas.voltage_max, 5000, - "Charging at VBUS %dmV, but PD reports %dmV", 5000, - response.meas.voltage_max); - /* Assert */ zassert_within(response.meas.voltage_now, 5000, 5000 / 10, "Actually charging at VBUS %dmV, but PD reports %dmV", 5000, response.meas.voltage_now); -} - -ZTEST_F(integration_usb_attach_src_then_snk, - attached_src_port_default_max_current) -{ - struct ec_params_usb_pd_power_info params = { .port = SNK_PORT }; - struct ec_response_usb_pd_power_info response; - struct host_cmd_handler_args args = BUILD_HOST_COMMAND( - EC_CMD_USB_PD_POWER_INFO, 0, response, params); - - /* Assume */ - zassume_ok(host_command_process(&args), "Failed to get PD power info"); - zassume_equal(response.role, USB_PD_PORT_POWER_SINK, - "Power role %d, but PD reports role %d", - USB_PD_PORT_POWER_SINK, response.role); - - zassume_equal(response.type, USB_CHG_TYPE_PD, - "Charger type %d, but PD reports type %d", - USB_CHG_TYPE_PD, response.type); - - /* Assert */ zassert_equal(response.meas.current_max, 3000, "Charging at VBUS max %dmA, but PD reports %dmA", 3000, response.meas.current_max); -} - -ZTEST_F(integration_usb_attach_src_then_snk, - attached_src_port_default_current_limit) -{ - struct ec_params_usb_pd_power_info params = { .port = SNK_PORT }; - struct ec_response_usb_pd_power_info response; - struct host_cmd_handler_args args = BUILD_HOST_COMMAND( - EC_CMD_USB_PD_POWER_INFO, 0, response, params); - - /* Assume */ - zassume_ok(host_command_process(&args), "Failed to get PD power info"); - - zassume_equal(response.role, USB_PD_PORT_POWER_SINK, - "Power role %d, but PD reports role %d", - USB_PD_PORT_POWER_SINK, response.role); - zassume_equal(response.type, USB_CHG_TYPE_PD, - "Charger type %d, but PD reports type %d", - USB_CHG_TYPE_PD, response.type); - - /* Assert */ zassert_true(response.meas.current_lim >= 3000, "Charging at VBUS max %dmA, but PD current limit %dmA", 3000, response.meas.current_lim); -} - -ZTEST_F(integration_usb_attach_src_then_snk, - attached_src_port_default_max_power) -{ - struct ec_params_usb_pd_power_info params = { .port = SNK_PORT }; - struct ec_response_usb_pd_power_info response; - struct host_cmd_handler_args args = BUILD_HOST_COMMAND( - EC_CMD_USB_PD_POWER_INFO, 0, response, params); - /* Assume */ - zassume_ok(host_command_process(&args), "Failed to get PD power info"); - - zassume_equal(response.role, USB_PD_PORT_POWER_SINK, - "Power role %d, but PD reports role %d", - USB_PD_PORT_POWER_SINK, response.role); - - zassume_equal(response.type, USB_CHG_TYPE_PD, - "Charger type %d, but PD reports type %d", - USB_CHG_TYPE_PD, response.type); - - zassume_equal(response.meas.voltage_max, 5000, - "Charging at VBUS %dmV, but PD reports %dmV", 5000, - response.meas.voltage_max); - - zassume_equal(response.meas.current_max, 3000, - "Charging at VBUS max %dmA, but PD reports %dmA", 3000, - response.meas.current_max); - - /* Assert */ - int expected_max_power = - response.meas.current_max * response.meas.voltage_max; - - zassert_equal(response.max_power, expected_max_power, - "Charging up to %duW, PD max power %duW", - expected_max_power, response.max_power); + zassert_equal(response.max_power, 5000 * 3000, + "Charging up to %duW, PD max power %duW", 5000 * 3000, + response.max_power); } -ZTEST_F(integration_usb_attach_src_then_snk, attached_snk_port_role) +ZTEST_F(integration_usb_attach_src_then_snk, verify_src_port_pd_info) { struct ec_params_usb_pd_power_info params = { .port = SRC_PORT }; struct ec_response_usb_pd_power_info response; @@ -329,77 +193,27 @@ ZTEST_F(integration_usb_attach_src_then_snk, attached_snk_port_role) /* Assert */ zassert_equal(response.role, USB_PD_PORT_POWER_SOURCE, - "Power role %d, but PD reports role %d", - USB_PD_PORT_POWER_SOURCE, response.role); -} - -ZTEST_F(integration_usb_attach_src_then_snk, attached_snk_port_charger_type) -{ - struct ec_params_usb_pd_power_info params = { .port = SRC_PORT }; - struct ec_response_usb_pd_power_info response; - struct host_cmd_handler_args args = BUILD_HOST_COMMAND( - EC_CMD_USB_PD_POWER_INFO, 0, response, params); - - /* Assume */ - zassume_ok(host_command_process(&args), "Failed to get PD power info"); - - zassume_equal(response.role, USB_PD_PORT_POWER_SOURCE, - "Power role %d, but PD reports role %d", - USB_PD_PORT_POWER_SOURCE, response.role); + "Power role %d, but PD reports role %d", PD_ROLE_SOURCE, + response.role); - /* Assert */ zassert_equal(response.type, USB_CHG_TYPE_NONE, "Charger type %d, but PD reports type %d", USB_CHG_TYPE_NONE, response.type); -} - -ZTEST_F(integration_usb_attach_src_then_snk, attached_snk_port_voltage_now) -{ - struct ec_params_usb_pd_power_info params = { .port = SRC_PORT }; - struct ec_response_usb_pd_power_info response; - struct host_cmd_handler_args args = BUILD_HOST_COMMAND( - EC_CMD_USB_PD_POWER_INFO, 0, response, params); - - /* Assume */ - zassume_ok(host_command_process(&args), "Failed to get PD power info"); - - zassume_equal(response.role, USB_PD_PORT_POWER_SOURCE, - "Power role %d, but PD reports role %d", - USB_PD_PORT_POWER_SOURCE, response.role); - - zassume_equal(response.type, USB_CHG_TYPE_NONE, - "Charger type %d, but PD reports type %d", - USB_CHG_TYPE_NONE, response.type); - /* Assert */ + /* Verify Default 5V and 3A */ + /* TODO(b/209907615): Confirm measure value requirements */ zassert_within(response.meas.voltage_now, 5000, 5000 / 10, "Expected Charging at VBUS %dmV, but PD reports %dmV", 5000, response.meas.voltage_now); -} - -ZTEST_F(integration_usb_attach_src_then_snk, - attached_snk_port_default_max_current) -{ - struct ec_params_usb_pd_power_info params = { .port = SRC_PORT }; - struct ec_response_usb_pd_power_info response; - struct host_cmd_handler_args args = BUILD_HOST_COMMAND( - EC_CMD_USB_PD_POWER_INFO, 0, response, params); - - /* Assume */ - zassume_ok(host_command_process(&args), "Failed to get PD power info"); - zassume_equal(response.role, PD_ROLE_SOURCE, - "Power role %d, but PD reports role %d", PD_ROLE_SOURCE, - response.role); - - zassume_equal(response.type, USB_CHG_TYPE_NONE, - "Charger type %d, but PD reports type %d", - USB_CHG_TYPE_NONE, response.type); - - /* Assert */ - zassert_equal(response.meas.current_max, 3000, + zassume_equal(response.meas.current_max, 3000, "Charging at VBUS max %dmA, but PD reports %dmA", 3000, response.meas.current_max); + + /* Note: We are the source so we skip checking: */ + /* meas.voltage_max */ + /* max_power */ + /* current limit */ } ZTEST_SUITE(integration_usb_attach_src_then_snk, drivers_predicate_post_main, |