Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 28 additions & 10 deletions tests/nvme_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,10 +203,15 @@ def test_self_test_log(self):
with self.assertRaisesRegex(GLib.GError, r".*Failed to open device .*': No such file or directory"):
BlockDev.nvme_get_self_test_log("/dev/nonexistent")

message = r"NVMe Get Log Page - Device Self-test Log command error: Invalid Field in Command: A reserved coded value or an unsupported value in a defined field|NVMe Get Log Page - Device Self-test Log command error: unrecognized"
with self.assertRaisesRegex(GLib.GError, message):
# Cannot retrieve self-test log on a nvme target loop devices
BlockDev.nvme_get_self_test_log(self.nvme_dev)
try:
# Cannot retrieve self-test log on a nvme target loop devices with older nvmetcli
ret = BlockDev.nvme_get_self_test_log(self.nvme_dev)
except GLib.GError as e:
message = r"NVMe Get Log Page - Device Self-test Log command error: Invalid Field in Command: A reserved coded value or an unsupported value in a defined field|NVMe Get Log Page - Device Self-test Log command error: unrecognized"
match = re.search(message, str(e))
self.assertIsNotNone(match, "Unexpected error when getting self test log: %s" % str(e))
else:
self.assertIsNotNone(ret)

self.assertEqual(BlockDev.nvme_self_test_result_to_string(BlockDev.NVMESelfTestResult.NO_ERROR), "success")
self.assertEqual(BlockDev.nvme_self_test_result_to_string(BlockDev.NVMESelfTestResult.ABORTED), "aborted")
Expand Down Expand Up @@ -283,12 +288,25 @@ def test_sanitize_log(self):
with self.assertRaisesRegex(GLib.GError, r".*Failed to open device .*': No such file or directory"):
BlockDev.nvme_get_sanitize_log("/dev/nonexistent")

message = r"NVMe Get Log Page - Sanitize Status Log command error: Invalid Field in Command: A reserved coded value or an unsupported value in a defined field|NVMe Get Log Page - Sanitize Status Log command error: unrecognized"
with self.assertRaisesRegex(GLib.GError, message):
# Cannot retrieve sanitize log on a nvme target loop devices
BlockDev.nvme_get_sanitize_log(self.nvme_dev)
with self.assertRaisesRegex(GLib.GError, message):
BlockDev.nvme_get_sanitize_log(self.nvme_ns_dev)
try:
# Cannot retrieve sanitize log on a nvme target loop devices with older nvmetcli
ret = BlockDev.nvme_get_sanitize_log(self.nvme_dev)
except GLib.GError as e:
message = r"NVMe Get Log Page - Sanitize Status Log command error: Invalid Field in Command: A reserved coded value or an unsupported value in a defined field|NVMe Get Log Page - Sanitize Status Log command error: unrecognized"
match = re.search(message, str(e))
self.assertIsNotNone(match, "Unexpected error when getting sanitize log: %s" % str(e))
else:
self.assertIsNotNone(ret)

try:
# Cannot retrieve sanitize log on a nvme target loop devices with older nvmetcli
ret = BlockDev.nvme_get_sanitize_log(self.nvme_ns_dev)
except GLib.GError as e:
message = r"NVMe Get Log Page - Sanitize Status Log command error: Invalid Field in Command: A reserved coded value or an unsupported value in a defined field|NVMe Get Log Page - Sanitize Status Log command error: unrecognized"
match = re.search(message, str(e))
self.assertIsNotNone(match, "Unexpected error when getting sanitize log: %s" % str(e))
else:
self.assertIsNotNone(ret)


@tag_test(TestTags.CORE)
Expand Down