[SWDEV-451960] [WIP] Add Pytest

Updates:
- Added pytest to shared/pytest folder
- User can execute tests:

[pytest]
python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/unit_tests.py -s -v
python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/integration_test.py -s -v

[unittest]
/opt/rocm/share/amd_smi/tests/pytest/unit_tests.py -v
/opt/rocm/share/amd_smi/tests/pytest/integration_test.py -v

- Automatically installs pytest

Change-Id: Ia3281a9608aeeb803b91f8b83f87ff84b01037f4
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
Tento commit je obsažen v:
Charis Poag
2024-05-14 17:03:05 -05:00
odevzdal Ryo Ficano
rodič b05849dad0
revize d9d6637cb7
13 změnil soubory, kde provedl 2489 přidání a 104 odebrání
+31 -42
Zobrazit soubor
@@ -590,6 +590,26 @@ def _padHexValue(value, length):
return '0x' + value[2:].zfill(length)
return value
class UIntegerTypes(IntEnum):
UINT8_T = 0xFF
UINT16_T = 0xFFFF
UINT32_T = 0xFFFFFFFF
UINT64_T = 0xFFFFFFFFFFFFFFFF
def _validateIfMaxUint(valToCheck, uintType: UIntegerTypes):
return_val = "N/A"
if not isinstance(valToCheck, list):
if valToCheck == uintType:
return return_val
else:
return valToCheck
else:
return_val = valToCheck
for idx, v in enumerate(valToCheck):
if v == uintType:
return_val[idx] = "N/A"
return return_val
def amdsmi_get_socket_handles() -> List[amdsmi_wrapper.amdsmi_socket_handle]:
"""
@@ -2277,31 +2297,23 @@ def amdsmi_get_pcie_info(
pcie_info_dict = {
"pcie_static": {
"max_pcie_width": pcie_info.pcie_static.max_pcie_width,
"max_pcie_speed": pcie_info.pcie_static.max_pcie_speed,
"pcie_interface_version": pcie_info.pcie_static.pcie_interface_version,
"max_pcie_width": _validateIfMaxUint(pcie_info.pcie_static.max_pcie_width, UIntegerTypes.UINT16_T),
"max_pcie_speed": _validateIfMaxUint(pcie_info.pcie_static.max_pcie_speed, UIntegerTypes.UINT32_T),
"pcie_interface_version": _validateIfMaxUint(pcie_info.pcie_static.pcie_interface_version, UIntegerTypes.UINT32_T),
"slot_type": pcie_info.pcie_static.slot_type,
},
"pcie_metric": {
"pcie_width": pcie_info.pcie_metric.pcie_width,
"pcie_speed": pcie_info.pcie_metric.pcie_speed,
"pcie_bandwidth": pcie_info.pcie_metric.pcie_bandwidth,
"pcie_replay_count": pcie_info.pcie_metric.pcie_replay_count,
"pcie_l0_to_recovery_count": pcie_info.pcie_metric.pcie_l0_to_recovery_count,
"pcie_replay_roll_over_count": pcie_info.pcie_metric.pcie_replay_roll_over_count,
"pcie_nak_sent_count": pcie_info.pcie_metric.pcie_nak_sent_count,
"pcie_nak_received_count": pcie_info.pcie_metric.pcie_nak_received_count,
"pcie_width": _validateIfMaxUint(pcie_info.pcie_metric.pcie_width, UIntegerTypes.UINT16_T),
"pcie_speed": _validateIfMaxUint(pcie_info.pcie_metric.pcie_speed, UIntegerTypes.UINT32_T),
"pcie_bandwidth": _validateIfMaxUint(pcie_info.pcie_metric.pcie_bandwidth, UIntegerTypes.UINT32_T),
"pcie_replay_count": _validateIfMaxUint(pcie_info.pcie_metric.pcie_replay_count, UIntegerTypes.UINT64_T),
"pcie_l0_to_recovery_count": _validateIfMaxUint(pcie_info.pcie_metric.pcie_l0_to_recovery_count, UIntegerTypes.UINT64_T),
"pcie_replay_roll_over_count": _validateIfMaxUint(pcie_info.pcie_metric.pcie_replay_roll_over_count, UIntegerTypes.UINT64_T),
"pcie_nak_sent_count": _validateIfMaxUint(pcie_info.pcie_metric.pcie_nak_sent_count, UIntegerTypes.UINT64_T),
"pcie_nak_received_count": _validateIfMaxUint(pcie_info.pcie_metric.pcie_nak_received_count, UIntegerTypes.UINT64_T),
}
}
# Check pcie static values for uint max
if pcie_info_dict['pcie_static']['max_pcie_width'] == 0xFFFF:
pcie_info_dict['pcie_static']['max_pcie_width'] = "N/A"
if pcie_info_dict['pcie_static']['max_pcie_speed'] == 0xFFFFFFFF:
pcie_info_dict['pcie_static']['max_pcie_speed'] = "N/A"
if pcie_info_dict['pcie_static']['pcie_interface_version'] == 0xFFFFFFFF:
pcie_info_dict['pcie_static']['pcie_interface_version'] = "N/A"
slot_type = pcie_info_dict['pcie_static']['slot_type']
if isinstance(slot_type, int):
slot_types = amdsmi_wrapper.amdsmi_card_form_factor_t__enumvalues
@@ -2312,29 +2324,6 @@ def amdsmi_get_pcie_info(
else:
pcie_info_dict['pcie_static']['slot_type'] = "N/A"
# Check pcie metric values for uint max
if pcie_info_dict['pcie_metric']['pcie_width'] == 0xFFFF:
pcie_info_dict['pcie_metric']['pcie_width'] = "N/A"
if pcie_info_dict['pcie_metric']['pcie_speed'] == 0xFFFFFFFF:
pcie_info_dict['pcie_metric']['pcie_speed'] = "N/A"
if pcie_info_dict['pcie_metric']['pcie_bandwidth'] == 0xFFFFFFFF:
pcie_info_dict['pcie_metric']['pcie_bandwidth'] = "N/A"
# TODO Just Navi 21 has a different uint max size for pcie_bandwidth
# if pcie_info_dict['pcie_metric']['pcie_bandwidth'] == 0xFFFFFFFF:
# pcie_info_dict['pcie_metric']['pcie_bandwidth'] = "N/A"
if pcie_info_dict['pcie_metric']['pcie_replay_count'] == 0xFFFFFFFFFFFFFFFF:
pcie_info_dict['pcie_metric']['pcie_replay_count'] = "N/A"
if pcie_info_dict['pcie_metric']['pcie_l0_to_recovery_count'] == 0xFFFFFFFFFFFFFFFF:
pcie_info_dict['pcie_metric']['pcie_l0_to_recovery_count'] = "N/A"
if pcie_info_dict['pcie_metric']['pcie_replay_roll_over_count'] == 0xFFFFFFFFFFFFFFFF:
pcie_info_dict['pcie_metric']['pcie_replay_roll_over_count'] = "N/A"
if pcie_info_dict['pcie_metric']['pcie_nak_sent_count'] == 0xFFFFFFFFFFFFFFFF:
pcie_info_dict['pcie_metric']['pcie_nak_sent_count'] = "N/A"
if pcie_info_dict['pcie_metric']['pcie_nak_received_count'] == 0xFFFFFFFFFFFFFFFF:
pcie_info_dict['pcie_metric']['pcie_nak_received_count'] = "N/A"
return pcie_info_dict
+6
Zobrazit soubor
@@ -29,3 +29,9 @@ packages = ["amdsmi"]
# install libamd_smi.so
[tool.setuptools.package-data]
amdsmi = ["*.so"]
[tool.pytest.ini_options]
pythonpath = "/opt/rocm/share/amd_smi"
addopts = [
"--import-mode=importlib",
]