tests: Catch only specific exceptions
This allows unexpected cases to terminate parallel-vm.py without being hidden by the exception handler. Signed-off-by: Masashi Honma <masashi.honma@gmail.com>
This commit is contained in:
parent
b623634262
commit
51c83edfca
1 changed files with 14 additions and 8 deletions
|
@ -14,6 +14,7 @@ import os
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
import errno
|
||||||
|
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
|
|
||||||
|
@ -94,8 +95,10 @@ def vm_read_stdout(vm, i):
|
||||||
if out == None:
|
if out == None:
|
||||||
return False
|
return False
|
||||||
out = out.decode()
|
out = out.decode()
|
||||||
except:
|
except IOError as e:
|
||||||
return False
|
if e.errno == errno.EAGAIN:
|
||||||
|
return False
|
||||||
|
raise
|
||||||
logger.debug("VM[%d] stdout.read[%s]" % (i, out))
|
logger.debug("VM[%d] stdout.read[%s]" % (i, out))
|
||||||
pending = vm['pending'] + out
|
pending = vm['pending'] + out
|
||||||
lines = []
|
lines = []
|
||||||
|
@ -199,8 +202,9 @@ def show_progress(scr):
|
||||||
err = err.decode()
|
err = err.decode()
|
||||||
vm[i]['err'] += err
|
vm[i]['err'] += err
|
||||||
logger.debug("VM[%d] stderr.read[%s]" % (i, err))
|
logger.debug("VM[%d] stderr.read[%s]" % (i, err))
|
||||||
except:
|
except IOError as e:
|
||||||
pass
|
if e.errno != errno.EAGAIN:
|
||||||
|
raise
|
||||||
|
|
||||||
if vm_read_stdout(vm[i], i):
|
if vm_read_stdout(vm[i], i):
|
||||||
scr.move(i + 1, 10)
|
scr.move(i + 1, 10)
|
||||||
|
@ -256,8 +260,9 @@ def show_progress(scr):
|
||||||
err = err.decode()
|
err = err.decode()
|
||||||
vm[i]['err'] += err
|
vm[i]['err'] += err
|
||||||
logger.debug("VM[%d] stderr.read[%s]" % (i, err))
|
logger.debug("VM[%d] stderr.read[%s]" % (i, err))
|
||||||
except:
|
except IOError as e:
|
||||||
pass
|
if e.errno != errno.EAGAIN:
|
||||||
|
raise
|
||||||
|
|
||||||
ready = False
|
ready = False
|
||||||
if vm[i]['first_run_done']:
|
if vm[i]['first_run_done']:
|
||||||
|
@ -374,8 +379,9 @@ def main():
|
||||||
dir = os.environ.get('HWSIM_TEST_LOG_DIR', '/tmp/hwsim-test-logs')
|
dir = os.environ.get('HWSIM_TEST_LOG_DIR', '/tmp/hwsim-test-logs')
|
||||||
try:
|
try:
|
||||||
os.makedirs(dir)
|
os.makedirs(dir)
|
||||||
except:
|
except OSError as e:
|
||||||
pass
|
if e.errno != errno.EEXIST:
|
||||||
|
raise
|
||||||
|
|
||||||
num_servers = args.num_servers
|
num_servers = args.num_servers
|
||||||
rerun_failures = not args.no_retry
|
rerun_failures = not args.no_retry
|
||||||
|
|
Loading…
Add table
Reference in a new issue