summaryrefslogtreecommitdiffstats
path: root/test/test-nbft.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test-nbft.py')
-rwxr-xr-xtest/test-nbft.py105
1 files changed, 105 insertions, 0 deletions
diff --git a/test/test-nbft.py b/test/test-nbft.py
new file mode 100755
index 0000000..cf62214
--- /dev/null
+++ b/test/test-nbft.py
@@ -0,0 +1,105 @@
+#!/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()