in microsoft/testsuites/network/networksettings.py [0:0]
def validate_device_msg_level_change(self, node: Node, log: Logger) -> None:
# Check if feature is supported by the kernel
self._check_msg_level_change_supported(node)
msg_types: Dict[str, str] = {
"probe": "0x0002",
"tx_done": "0x0400",
"rx_status": "0x0800",
}
ethtool = node.tools[Ethtool]
devices_msg_level = ethtool.get_all_device_msg_level()
for msg_level_info in devices_msg_level:
interface = msg_level_info.device_name
original_msg_level_number = msg_level_info.msg_level_number
original_msg_level_name = msg_level_info.msg_level_name
name_test_flag = []
number_test_flag = 0
for msg_key, msg_value in msg_types.items():
if msg_key not in original_msg_level_name:
name_test_flag.append(msg_key)
number_test_flag += int(msg_value, 16)
# variable to indicate set or unset
set = True
# if test message flags are already set, pick first test flag in list.
# validate change by first unsetting the flag and then unsetting
if not name_test_flag and not number_test_flag:
first_pair = list(msg_types.items())[0]
name_test_flag.append(first_pair[0])
number_test_flag = int(first_pair[1], 16)
set = False
# Testing set/unset message level by name
new_settings = ethtool.set_unset_device_message_flag_by_name(
interface, name_test_flag, set
)
if set:
assert_that(
new_settings.msg_level_name,
f"Setting msg flags - {' '.join(name_test_flag)} didn't"
f" succeed. Current value is {new_settings.msg_level_name}",
).contains(" ".join(name_test_flag))
else:
assert_that(
new_settings.msg_level_name,
f"Setting msg flags by name - {' '.join(name_test_flag)} didn't"
f" succeed. Current value is {new_settings.msg_level_name}",
).does_not_contain(" ".join(name_test_flag))
reverted_settings = ethtool.set_unset_device_message_flag_by_name(
interface, name_test_flag, not set
)
if not set:
assert_that(
reverted_settings.msg_level_name,
f"Setting msg flags by name - {' '.join(name_test_flag)} didn't"
f" succeed. Current value is {reverted_settings.msg_level_name}",
).contains(" ".join(name_test_flag))
else:
assert_that(
reverted_settings.msg_level_name,
f"Setting msg flags by name - {' '.join(name_test_flag)} didn't"
f" succeed. Current value is {reverted_settings.msg_level_name}",
).does_not_contain(" ".join(name_test_flag))
# Testing set message level by number
new_settings = ethtool.set_device_message_flag_by_num(
interface, str(hex(number_test_flag))
)
assert_that(
int(new_settings.msg_level_number, 16),
f"Setting msg flags by number - {str(hex(number_test_flag))} didn't"
f" succeed. Current value is {new_settings.msg_level_number}",
).is_equal_to(number_test_flag)
reverted_settings = ethtool.set_device_message_flag_by_num(
interface, original_msg_level_number
)
assert_that(
int(reverted_settings.msg_level_number, 16),
f"Setting msg flags by number - {original_msg_level_number} didn't"
f" succeed. Current value is {reverted_settings.msg_level_number}",
).is_equal_to(int(original_msg_level_number, 16))