From: hare@suse.de (Hannes Reinecke)
Subject: [nvme-cli 2/9] tests/nvme_writeuncor_test.py: check if write uncorrectable is supported
Date: Tue, 30 Apr 2019 08:05:47 +0200 [thread overview]
Message-ID: <20190430060554.24368-3-hare@suse.de> (raw)
In-Reply-To: <20190430060554.24368-1-hare@suse.de>
Before testing the WRITE UNCORRECTABLE command we should be testing the
ONCS value of the IDENTIFY CONTROLLER command to figure out if
the command is supported.
Signed-off-by: Hannes Reinecke <hare at suse.com>
---
tests/nvme_test.py | 24 ++++++++++++++++++++++++
tests/nvme_writeuncor_test.py | 11 ++++++-----
2 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/tests/nvme_test.py b/tests/nvme_test.py
index 1c17ba1..7db277f 100644
--- a/tests/nvme_test.py
+++ b/tests/nvme_test.py
@@ -276,6 +276,30 @@ class TestNVMe(object):
return int(oncs, 16) & 8
@tools.nottest
+ def get_oncs_write_uncorr(self):
+ """ Wrapper for extracting write uncorrectable command support.
+ - Args:
+ - None
+ - Returns:
+ - true if supported.
+ """
+ pattern = re.compile("^oncs[ ]+: [0-9]", re.IGNORECASE)
+ oncs = 0
+ get_ctrl_id = "nvme id-ctrl " + self.ctrl
+ proc = subprocess.Popen(get_ctrl_id,
+ shell=True,
+ stdout=subprocess.PIPE)
+ err = proc.wait()
+ assert_equal(err, 0, "ERROR : reading oncs value failed")
+
+ for line in proc.stdout:
+ if pattern.match(line):
+ oncs = line.split(":")[1].strip()
+ break
+
+ return int(oncs, 16) & 2
+
+ @tools.nottest
def delete_all_ns(self):
""" Wrapper for deleting all the namespaces.
- Args:
diff --git a/tests/nvme_writeuncor_test.py b/tests/nvme_writeuncor_test.py
index 9f96f63..e4dc7b4 100644
--- a/tests/nvme_writeuncor_test.py
+++ b/tests/nvme_writeuncor_test.py
@@ -69,8 +69,9 @@ class TestNVMeUncor(TestNVMeIO):
def test_write_uncor(self):
""" Testcase main """
- assert_equal(self.nvme_read(), 0)
- assert_equal(self.write_uncor(), 0)
- assert_not_equal(self.nvme_read(), 0)
- assert_equal(self.nvme_write(), 0)
- assert_equal(self.nvme_read(), 0)
+ if self.get_oncs_write_uncorr() == 1:
+ assert_equal(self.nvme_read(), 0)
+ assert_equal(self.write_uncor(), 0)
+ assert_not_equal(self.nvme_read(), 0)
+ assert_equal(self.nvme_write(), 0)
+ assert_equal(self.nvme_read(), 0)
--
2.13.7
next prev parent reply other threads:[~2019-04-30 6:05 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-30 6:05 [nvme-cli 0/9] Update tests for qemu Hannes Reinecke
2019-04-30 6:05 ` [nvme-cli 1/9] tests/nvme_writezeros_test.py: check if write zeroes is supported Hannes Reinecke
2019-04-30 16:48 ` Heitke, Kenneth
2019-04-30 6:05 ` Hannes Reinecke [this message]
2019-04-30 18:56 ` [nvme-cli 2/9] tests/nvme_writeuncor_test.py: check if write uncorrectable " Heitke, Kenneth
2019-04-30 6:05 ` [nvme-cli 3/9] tests/nvme_compare_test.py: check if compare " Hannes Reinecke
2019-04-30 6:05 ` [nvme-cli 4/9] tests: ignore log tests for Qemu Hannes Reinecke
2019-04-30 6:05 ` [nvme-cli 5/9] tests/nvme_text.py: add test for namespace management Hannes Reinecke
2019-04-30 6:05 ` [nvme-cli 6/9] tests/nvme_attach_detach_ns_test.py: skip if namespace mgmt is not supported Hannes Reinecke
2019-04-30 6:05 ` [nvme-cli 7/9] tests/nvme_create_max_ns_test.py: " Hannes Reinecke
2019-04-30 6:05 ` [nvme-cli 8/9] tests/nvme_get_features_test.py: skip features for Qemu Hannes Reinecke
2019-04-30 6:05 ` [nvme-cli 9/9] tests/nvme_format_test.py: skip test if namespace management is not supported Hannes Reinecke
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190430060554.24368-3-hare@suse.de \
--to=hare@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox