Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions tests/smartswitch/common/device_utils_dpu.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,24 @@ def check_dpu_module_status(duthost, power_status, dpu_name):
return False


def check_dpus_module_status(duthost, dpu_list, power_status, wait_timeout=30):
"""
Check module status of given DPU list
Args:
duthost : Host handle
dpu_list: List of DPUs to be checked
power_status: status to be checked (on/off)
wait_timeout: timeout for the check
"""
logging.info("Check module status of DPUs")
wait_interval = 10 if wait_timeout > 20 else wait_timeout // 3
for dpu_name in dpu_list:
pytest_assert(wait_until(wait_timeout, wait_interval, 0,
check_dpu_module_status, duthost,
power_status, dpu_name),
f"DPU {dpu_name} is not {power_status}")


def check_dpu_reboot_cause(duthost, dpu_name, reason):
"""
Check reboot cause of all DPU modules
Expand Down
8 changes: 7 additions & 1 deletion tests/smartswitch/platform_tests/test_reload_dpu.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from tests.common.reboot import reboot, REBOOT_TYPE_COLD, SONIC_SSH_PORT, SONIC_SSH_REGEX
from tests.smartswitch.common.device_utils_dpu import check_dpu_link_and_status,\
pre_test_check, post_test_switch_check, post_test_dpus_check,\
dpus_shutdown_and_check, dpus_startup_and_check,\
dpus_shutdown_and_check, dpus_startup_and_check, check_dpus_module_status,\
num_dpu_modules, check_dpus_are_not_pingable, check_dpus_reboot_cause # noqa: F401
from tests.common.platform.device_utils import platform_api_conn, start_platform_api_service # noqa: F401,F403
from tests.smartswitch.common.reboot import perform_reboot
Expand Down Expand Up @@ -216,6 +216,9 @@ def test_dpu_status_post_dpu_kernel_panic(duthosts, dpuhosts,

logging.info("Starting UP the DPUs")
dpus_startup_and_check(duthost, dpu_on_list, num_dpu_modules)
else:
logging.info("Check DPUs are offline")
check_dpus_module_status(duthost, dpu_on_list, "off")

logging.info("Executing post test dpu check")
post_test_dpus_check(duthost, dpuhosts,
Expand Down Expand Up @@ -267,6 +270,9 @@ def test_dpu_check_post_dpu_mem_exhaustion(duthosts, dpuhosts,

logging.info("Starting UP the DPUs")
dpus_startup_and_check(duthost, dpu_on_list, num_dpu_modules)
else:
logging.info("Check DPUs are offline")
check_dpus_module_status(duthost, dpu_on_list, "off")

logging.info("Executing post test dpu check")
post_test_dpus_check(duthost, dpuhosts, dpu_on_list, ip_address_list,
Expand Down
Loading