Skip to content

Commit d746cd9

Browse files
MaisenbacherDigaw
authored andcommitted
tests: fix hex to base-10 conversion in id-ctrl output
When doing bit checks on id-ctrl output fields we need to convert the field numbers to a base-10 integer. However, the json output mostly returns already base-10 integers, so we now first check for the '0x' prefix before falsely converting the desired value. Signed-off-by: Dennis Maisenbacher <dennis.maisenbacher@wdc.com>
1 parent 2ed94bd commit d746cd9

File tree

3 files changed

+17
-6
lines changed

3 files changed

+17
-6
lines changed

tests/nvme_compare_test.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
3131
"""
3232

33+
from nvme_test import to_decimal
3334
from nvme_test_io import TestNVMeIO
3435

3536

@@ -52,7 +53,7 @@ def compare_cmd_supported(self):
5253
- Returns:
5354
- True if 'compare' is supported, otherwise False
5455
"""
55-
return int(self.get_id_ctrl_field_value("oncs"), 16) & (1 << 0)
56+
return to_decimal(self.get_id_ctrl_field_value("oncs")) & (1 << 0)
5657

5758
def setUp(self):
5859
""" Pre Section for TestNVMeCompareCmd """

tests/nvme_smart_log_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
2828
"""
2929

30-
from nvme_test import TestNVMe
30+
from nvme_test import TestNVMe, to_decimal
3131

3232

3333
class TestNVMeSmartLogCmd(TestNVMe):
@@ -84,6 +84,6 @@ def get_smart_log_all_ns(self):
8484
def test_smart_log(self):
8585
""" Testcase main """
8686
self.assertEqual(self.get_smart_log_ctrl(), 0)
87-
smlp = int(self.get_id_ctrl_field_value("lpa"), 16)
87+
smlp = to_decimal(self.get_id_ctrl_field_value("lpa"))
8888
if smlp & 0x1:
8989
self.assertEqual(self.get_smart_log_all_ns(), 0)

tests/nvme_test.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,16 @@
3636
from nvme_test_logger import TestNVMeLogger
3737

3838

39+
def to_decimal(value):
40+
""" Wrapper for converting numbers to base 10 decimal
41+
- Args:
42+
- value: A number in any common base
43+
- Returns:
44+
- Decimal integer
45+
"""
46+
return int(str(value), 0)
47+
48+
3949
class TestNVMe(unittest.TestCase):
4050

4151
"""
@@ -246,7 +256,7 @@ def get_lba_status_supported(self):
246256
- Returns:
247257
- True if 'Get LBA Status' command is supported, otherwise False
248258
"""
249-
return int(self.get_id_ctrl_field_value("oacs"), 16) & (1 << 9)
259+
return to_decimal(self.get_id_ctrl_field_value("oacs")) & (1 << 9)
250260

251261
def get_lba_format_size(self):
252262
""" Wrapper for extracting lba format size of the given flbas
@@ -284,7 +294,7 @@ def get_ncap(self):
284294
- Returns:
285295
- Total NVM capacity.
286296
"""
287-
return int(self.get_id_ctrl_field_value("tnvmcap"))
297+
return to_decimal(self.get_id_ctrl_field_value("tnvmcap"))
288298

289299
def get_id_ctrl_field_value(self, field):
290300
""" Wrapper for extracting id-ctrl field values
@@ -313,7 +323,7 @@ def get_ocfs(self):
313323
- Returns:
314324
- Optional Copy Formats Supported
315325
"""
316-
return int(self.get_id_ctrl_field_value("ocfs"), 16)
326+
return to_decimal(self.get_id_ctrl_field_value("ocfs"))
317327

318328
def delete_all_ns(self):
319329
""" Wrapper for deleting all the namespaces.

0 commit comments

Comments
 (0)