Skip to content

Commit eedccc5

Browse files
committed
tests: Do not wait forever for SCSI debug setup and cleanup
1 parent 7eb0832 commit eedccc5

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

tests/smart_test.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,21 +63,27 @@ def _setup_scsi_debug(self):
6363
res, _out, _err = run_command('modprobe scsi_debug')
6464
self.assertEqual(res, 0)
6565
dirs = []
66-
while len(dirs) < 1:
66+
num_tries = 0
67+
while len(dirs) < 1 and num_tries < 10:
6768
dirs = glob.glob('/sys/bus/pseudo/drivers/scsi_debug/adapter*/host*/target*/*:*/block')
6869
time.sleep(0.1)
70+
num_tries += 1
71+
if len(dirs) < 1:
72+
raise RuntimeError("Failed to setup SCSI debug device for testing")
6973
self.scsi_debug_dev = os.listdir(dirs[0])
7074
self.assertEqual(len(self.scsi_debug_dev), 1)
7175
self.scsi_debug_dev = '/dev/' + self.scsi_debug_dev[0]
7276
self.assertTrue(os.path.exists(self.scsi_debug_dev))
7377

7478
def _clean_scsi_debug(self):
7579
try:
80+
num_tries = 0
7681
device = self.scsi_debug_dev.split('/')[-1]
7782
if os.path.exists('/sys/block/' + device):
7883
write_file('/sys/block/%s/device/delete' % device, '1')
79-
while os.path.exists(device):
84+
while os.path.exists(device) and num_tries < 10:
8085
time.sleep(0.1)
86+
num_tries += 1
8187
run_command('modprobe -r scsi_debug')
8288
except:
8389
pass

tests/smartmontools_test.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,21 +63,27 @@ def _setup_scsi_debug(self):
6363
res, _out, _err = run_command('modprobe scsi_debug')
6464
self.assertEqual(res, 0)
6565
dirs = []
66-
while len(dirs) < 1:
66+
num_tries = 0
67+
while len(dirs) < 1 and num_tries < 10:
6768
dirs = glob.glob('/sys/bus/pseudo/drivers/scsi_debug/adapter*/host*/target*/*:*/block')
6869
time.sleep(0.1)
70+
num_tries += 1
71+
if len(dirs) < 1:
72+
raise RuntimeError("Failed to setup SCSI debug device for testing")
6973
self.scsi_debug_dev = os.listdir(dirs[0])
7074
self.assertEqual(len(self.scsi_debug_dev), 1)
7175
self.scsi_debug_dev = '/dev/' + self.scsi_debug_dev[0]
7276
self.assertTrue(os.path.exists(self.scsi_debug_dev))
7377

7478
def _clean_scsi_debug(self):
7579
try:
80+
num_tries = 0
7681
device = self.scsi_debug_dev.split('/')[-1]
7782
if os.path.exists('/sys/block/' + device):
7883
write_file('/sys/block/%s/device/delete' % device, '1')
79-
while os.path.exists(device):
84+
while os.path.exists(device) and num_tries < 10:
8085
time.sleep(0.1)
86+
num_tries += 1
8187
run_command('modprobe -r scsi_debug')
8288
except:
8389
pass

0 commit comments

Comments
 (0)