# read lbaf information
id_ns = "nvme id-ns " + self.ctrl + \
" -n1 | grep ^lbaf | awk '{print $2}' | tr -s \"\\n\" \" \""
- proc = subprocess.Popen(id_ns, shell=True, stdout=subprocess.PIPE)
+ proc = subprocess.Popen(id_ns, shell=True, stdout=subprocess.PIPE,
+ encoding='utf-8')
self.lba_format_list = proc.stdout.read().strip().split(" ")
if proc.wait() == 0:
# read lbads information
id_ns = "nvme id-ns " + self.ctrl + \
" -n1 | grep ^lbaf | awk '{print $5}'" + \
" | cut -f 2 -d ':' | tr -s \"\\n\" \" \""
- proc = subprocess.Popen(id_ns, shell=True, stdout=subprocess.PIPE)
+ proc = subprocess.Popen(id_ns, shell=True, stdout=subprocess.PIPE,
+ encoding='utf-8')
self.lbads_list = proc.stdout.read().strip().split(" ")
# read metadata information
id_ns = "nvme id-ns " + self.ctrl + \
" -n1 | grep ^lbaf | awk '{print $4}'" + \
" | cut -f 2 -d ':' | tr -s \"\\n\" \" \""
- proc = subprocess.Popen(id_ns, shell=True, stdout=subprocess.PIPE)
+ proc = subprocess.Popen(id_ns, shell=True, stdout=subprocess.PIPE,
+ encoding='utf-8')
self.ms_list = proc.stdout.read().strip().split(" ")
assert_equal(self.detach_ns(self.ctrl_id, self.default_nsid), 0)
assert_equal(self.delete_and_validate_ns(self.default_nsid), 0)
@tools.nottest
def exec_cmd(self, cmd):
""" Wrapper for executing a shell command and return the result. """
- proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
+ proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
+ encoding='utf-8')
return proc.wait()
@tools.nottest
nvme_reset_cmd = "nvme reset " + self.ctrl
err = subprocess.call(nvme_reset_cmd,
shell=True,
- stdout=subprocess.PIPE)
+ stdout=subprocess.PIPE,
+ encoding='utf-8')
assert_equal(err, 0, "ERROR : nvme reset failed")
time.sleep(5)
rescan_cmd = "echo 1 > /sys/bus/pci/rescan"
proc = subprocess.Popen(rescan_cmd,
shell=True,
stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
+ stderr=subprocess.PIPE,
+ encoding='utf-8')
time.sleep(5)
assert_equal(proc.wait(), 0, "ERROR : pci rescan failed")
get_ctrl_id = "nvme list-ctrl " + self.ctrl
proc = subprocess.Popen(get_ctrl_id,
shell=True,
- stdout=subprocess.PIPE)
+ stdout=subprocess.PIPE,
+ encoding='utf-8')
err = proc.wait()
assert_equal(err, 0, "ERROR : nvme list-ctrl failed")
line = proc.stdout.readline()
encoding='utf-8')
assert_equal(proc.wait(), 0, "ERROR : nvme list namespace failed")
for line in proc.stdout:
- ns_list.append(line.replace('\n', '', 1))
+ ns_list.append(line.split('x')[-1])
return ns_list
max_ns_cmd = "nvme id-ctrl " + self.ctrl
proc = subprocess.Popen(max_ns_cmd,
shell=True,
- stdout=subprocess.PIPE)
+ stdout=subprocess.PIPE,
+ encoding='utf-8')
err = proc.wait()
assert_equal(err, 0, "ERROR : reading maximum namespace count failed")
ncap_cmd = "nvme id-ctrl " + self.ctrl
proc = subprocess.Popen(ncap_cmd,
shell=True,
- stdout=subprocess.PIPE)
+ stdout=subprocess.PIPE,
+ encoding='utf-8')
err = proc.wait()
assert_equal(err, 0, "ERROR : reading nvm capacity failed")
nvm_format_cmd = "nvme id-ns " + self.ctrl + " -n1"
proc = subprocess.Popen(nvm_format_cmd,
shell=True,
- stdout=subprocess.PIPE)
+ stdout=subprocess.PIPE,
+ encoding='utf-8')
err = proc.wait()
assert_equal(err, 0, "ERROR : reading nvm capacity failed")
list_ns_cmd = "nvme list-ns " + self.ctrl + " --all | wc -l"
proc = subprocess.Popen(list_ns_cmd,
shell=True,
- stdout=subprocess.PIPE)
+ stdout=subprocess.PIPE,
+ encoding='utf-8')
output = proc.stdout.read().strip()
assert_equal(output, '0', "ERROR : deleting all namespace failed")
id_ns_cmd = "nvme id-ns " + self.ctrl + " -n " + str(nsid)
err = subprocess.call(id_ns_cmd,
shell=True,
- stdout=subprocess.PIPE)
+ stdout=subprocess.PIPE,
+ encoding='utf-8')
return err
@tools.nottest
" --controllers=" + ctrl_id
err = subprocess.call(attach_ns_cmd,
shell=True,
- stdout=subprocess.PIPE)
+ stdout=subprocess.PIPE,
+ encoding='utf-8')
time.sleep(5)
if err == 0:
# enumerate new namespace block device
" --controllers=" + ctrl_id
return subprocess.call(detach_ns_cmd,
shell=True,
- stdout=subprocess.PIPE)
+ stdout=subprocess.PIPE,
+ encoding='utf-8')
@tools.nottest
def delete_and_validate_ns(self, nsid):
delete_ns_cmd = "nvme delete-ns " + self.ctrl + " -n " + str(nsid)
err = subprocess.call(delete_ns_cmd,
shell=True,
- stdout=subprocess.PIPE)
+ stdout=subprocess.PIPE,
+ encoding='utf-8')
assert_equal(err, 0, "ERROR : delete namespace failed")
return err
print(id_ctrl_cmd)
proc = subprocess.Popen(id_ctrl_cmd,
shell=True,
- stdout=subprocess.PIPE)
+ stdout=subprocess.PIPE,
+ encoding='utf-8')
err = proc.wait()
assert_equal(err, 0, "ERROR : nvme id controller failed")
return err
- Returns:
- None
"""
- block_size = mmap.PAGESIZE if lbads < 9 else 2 ** int(lbads)
+ block_size = mmap.PAGESIZE if int(lbads) < 9 else 2 ** int(lbads)
ns_path = self.ctrl + "n" + str(nsid)
io_cmd = "dd if=" + ns_path + " of=/dev/null" + " bs=" + \
str(block_size) + " count=10 > /dev/null 2>&1"
print(io_cmd)
- run_io = subprocess.Popen(io_cmd, shell=True, stdout=subprocess.PIPE)
+ run_io = subprocess.Popen(io_cmd, shell=True, stdout=subprocess.PIPE,
+ encoding='utf-8')
run_io_result = run_io.communicate()[1]
assert_equal(run_io_result, None)
io_cmd = "dd if=/dev/zero of=" + ns_path + " bs=" + \
str(block_size) + " count=10 > /dev/null 2>&1"
print(io_cmd)
- run_io = subprocess.Popen(io_cmd, shell=True, stdout=subprocess.PIPE)
+ run_io = subprocess.Popen(io_cmd, shell=True, stdout=subprocess.PIPE,
+ encoding='utf-8')
run_io_result = run_io.communicate()[1]
assert_equal(run_io_result, None)