1
0
Fork 0
nvme-stas/test/test-nbft.py
Daniel Baumann 892b155d7d
Merging upstream version 2.3~rc3.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-02-16 12:54:59 +01:00

105 lines
3.2 KiB
Python
Executable file

#!/usr/bin/python3
import os
import unittest
from staslib import defs, nbft
from libnvme import nvme
from argparse import ArgumentParser
TEST_DIR = os.path.dirname(__file__)
NBFT_FILE = os.path.join(TEST_DIR, "NBFT")
EMPTY_NBFT_FILE = os.path.join(TEST_DIR, "NBFT-Empty")
NBFT_DATA = {
"discovery": [
{
"hfi_index": 0,
"nqn": "nqn.2014-08.org.nvmexpress.discovery",
"uri": "nvme+tcp://100.71.103.50:8009/",
}
],
"hfi": [
{
"dhcp_override": True,
"dhcp_server_ipaddr": "100.71.245.254",
"gateway_ipaddr": "100.71.245.254",
"ip_origin": 82,
"ipaddr": "100.71.245.232",
"mac_addr": "b0:26:28:e8:7c:0e",
"pcidev": "0:40:0.0",
"primary_dns_ipaddr": "100.64.0.5",
"route_metric": 500,
"secondary_dns_ipaddr": "100.64.0.6",
"subnet_mask_prefix": 24,
"this_hfi_is_default_route": True,
"trtype": "tcp",
"vlan": 0,
}
],
"host": {
"host_id_configured": True,
"host_nqn_configured": True,
"id": "44454c4c-3400-1036-8038-b2c04f313233",
"nqn": "nqn.1988-11.com.dell:PowerEdge.R760.1234567",
"primary_admin_host_flag": "not indicated",
},
"subsystem": [
{
"asqsz": 0,
"controller_id": 5,
"data_digest_required": False,
"hfi_indexes": [0],
"nid": "c82404ed9c15f53b8ccf0968002e0fca",
"nid_type": "nguid",
"nsid": 148,
"pdu_header_digest_required": False,
"subsys_nqn": "nqn.1988-11.com.dell:powerstore:00:2a64abf1c5b81F6C4549",
"subsys_port_id": 0,
"traddr": "100.71.103.48",
"trsvcid": "4420",
"trtype": "tcp",
},
{
"asqsz": 0,
"controller_id": 4166,
"data_digest_required": False,
"hfi_indexes": [0],
"nid": "c82404ed9c15f53b8ccf0968002e0fca",
"nid_type": "nguid",
"nsid": 148,
"pdu_header_digest_required": False,
"subsys_nqn": "nqn.1988-11.com.dell:powerstore:00:2a64abf1c5b81F6C4549",
"subsys_port_id": 0,
"traddr": "100.71.103.49",
"trsvcid": "4420",
"trtype": "tcp",
},
],
}
class Test(unittest.TestCase):
"""Unit tests for NBFT"""
def setUp(self):
# Depending on the version of libnvme installed
# we may or may not have access to NBFT support.
nbft_get = getattr(nvme, "nbft_get", None)
if defs.HAS_NBFT_SUPPORT:
self.expected_nbft = {
NBFT_FILE: NBFT_DATA,
EMPTY_NBFT_FILE: {},
}
else:
self.expected_nbft = {}
def test_dir_with_nbft_files(self):
"""Make sure we get expected data when reading from binary NBFT file"""
actual_nbft = nbft.get_nbft_files(TEST_DIR)
self.assertEqual(actual_nbft, self.expected_nbft)
def test_dir_without_nbft_files(self):
actual_nbft = nbft.get_nbft_files("/tmp")
self.assertEqual(actual_nbft, {})
if __name__ == "__main__":
unittest.main()