1616
1717"""
1818
19- import logging
20- import subprocess
21-
2219from nvme_test import TestNVMe
2320
2421logger = logging .getLogger (__name__ )
@@ -44,14 +41,10 @@ def setUp(self):
4441 # get host behavior support data
4542 get_features_cmd = f"{ self .nvme_bin } get-feature { self .ctrl } " + \
4643 "--feature-id=0x16 --data-len=512 --raw-binary"
47- logger .debug (get_features_cmd )
48- proc = subprocess .Popen (get_features_cmd ,
49- shell = True ,
50- stdout = subprocess .PIPE ,
51- encoding = 'utf-8' )
52- err = proc .wait ()
44+ result = self .run_cmd (get_features_cmd )
45+ err = result .returncode
5346 self .assertEqual (err , 0 , "ERROR : nvme get-feature failed" )
54- self .host_behavior_data = proc .stdout . read ()
47+ self .host_behavior_data = result .stdout
5548 # enable cross-namespace copy formats
5649 if self .host_behavior_data [4 ] & cross_namespace_copy :
5750 # skip if already enabled
@@ -61,23 +54,13 @@ def setUp(self):
6154 data = self .host_behavior_data [:4 ] + cross_namespace_copy .to_bytes (2 , 'little' ) + self .host_behavior_data [6 :]
6255 set_features_cmd = f"{ self .nvme_bin } set-feature " + \
6356 f"{ self .ctrl } --feature-id=0x16 --data-len=512"
64- proc = subprocess .Popen (set_features_cmd ,
65- shell = True ,
66- stdout = subprocess .PIPE ,
67- stdin = subprocess .PIPE ,
68- encoding = 'utf-8' )
69- proc .communicate (input = data )
70- self .assertEqual (proc .returncode , 0 , "Failed to enable cross-namespace copy formats" )
57+ result = self .run_cmd (set_features_cmd , stdin_data = data )
58+ self .assertEqual (result .returncode , 0 , "Failed to enable cross-namespace copy formats" )
7159 get_ns_id_cmd = f"{ self .nvme_bin } get-ns-id { self .ns1 } "
72- logger .debug (get_ns_id_cmd )
73- proc = subprocess .Popen (get_ns_id_cmd ,
74- shell = True ,
75- stdout = subprocess .PIPE ,
76- encoding = 'utf-8' )
77- err = proc .wait ()
60+ result = self .run_cmd (get_ns_id_cmd )
61+ err = result .returncode
7862 self .assertEqual (err , 0 , "ERROR : nvme get-ns-id failed" )
79- output = proc .stdout .read ()
80- logger .debug (output )
63+ output = result .stdout
8164 self .ns1_nsid = int (output .strip ().split (':' )[- 1 ])
8265 self .setup_log_dir (self .__class__ .__name__ )
8366
@@ -87,13 +70,7 @@ def tearDown(self):
8770 # restore saved host behavior support data
8871 set_features_cmd = f"{ self .nvme_bin } set-feature { self .ctrl } " + \
8972 "--feature-id=0x16 --data-len=512"
90- logger .debug (set_features_cmd )
91- proc = subprocess .Popen (set_features_cmd ,
92- shell = True ,
93- stdout = subprocess .PIPE ,
94- stdin = subprocess .PIPE ,
95- encoding = 'utf-8' )
96- proc .communicate (input = self .host_behavior_data )
73+ self .run_cmd (set_features_cmd , stdin_data = self .host_behavior_data )
9774 super ().tearDown ()
9875
9976 def copy (self , sdlba , blocks , slbs , ** kwargs ):
0 commit comments