tc-testing: tdc.py: Guard against lack of returncode in executed command
[ Upstream commit c6cecf4ae44e4ce9158ef8806358142c3512cd33 ] Add some defensive coding in case one of the subprocesses created by tdc returns nothing. If no object is returned from exec_cmd, then tdc will halt with an unhandled exception. Signed-off-by: Brenda J. Butler <bjb@mojatatu.com> Signed-off-by: Lucas Bates <lucasb@mojatatu.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
9806e7473d
commit
4ef9e48c9c
@@ -169,6 +169,8 @@ def prepare_env(args, pm, stage, prefix, cmdlist, output = None):
|
|||||||
file=sys.stderr)
|
file=sys.stderr)
|
||||||
print("\n{} *** Error message: \"{}\"".format(prefix, foutput),
|
print("\n{} *** Error message: \"{}\"".format(prefix, foutput),
|
||||||
file=sys.stderr)
|
file=sys.stderr)
|
||||||
|
print("returncode {}; expected {}".format(proc.returncode,
|
||||||
|
exit_codes))
|
||||||
print("\n{} *** Aborting test run.".format(prefix), file=sys.stderr)
|
print("\n{} *** Aborting test run.".format(prefix), file=sys.stderr)
|
||||||
print("\n\n{} *** stdout ***".format(proc.stdout), file=sys.stderr)
|
print("\n\n{} *** stdout ***".format(proc.stdout), file=sys.stderr)
|
||||||
print("\n\n{} *** stderr ***".format(proc.stderr), file=sys.stderr)
|
print("\n\n{} *** stderr ***".format(proc.stderr), file=sys.stderr)
|
||||||
@@ -195,12 +197,18 @@ def run_one_test(pm, args, index, tidx):
|
|||||||
print('-----> execute stage')
|
print('-----> execute stage')
|
||||||
pm.call_pre_execute()
|
pm.call_pre_execute()
|
||||||
(p, procout) = exec_cmd(args, pm, 'execute', tidx["cmdUnderTest"])
|
(p, procout) = exec_cmd(args, pm, 'execute', tidx["cmdUnderTest"])
|
||||||
|
if p:
|
||||||
exit_code = p.returncode
|
exit_code = p.returncode
|
||||||
|
else:
|
||||||
|
exit_code = None
|
||||||
|
|
||||||
pm.call_post_execute()
|
pm.call_post_execute()
|
||||||
|
|
||||||
if (exit_code != int(tidx["expExitCode"])):
|
if (exit_code is None or exit_code != int(tidx["expExitCode"])):
|
||||||
result = False
|
result = False
|
||||||
print("exit:", exit_code, int(tidx["expExitCode"]))
|
print("exit: {!r}".format(exit_code))
|
||||||
|
print("exit: {}".format(int(tidx["expExitCode"])))
|
||||||
|
#print("exit: {!r} {}".format(exit_code, int(tidx["expExitCode"])))
|
||||||
print(procout)
|
print(procout)
|
||||||
else:
|
else:
|
||||||
if args.verbose > 0:
|
if args.verbose > 0:
|
||||||
|
|||||||
Reference in New Issue
Block a user