提交 d37e56df 编写于 作者: L Lucas Bates 提交者: David S. Miller

tc-testing: Add command timeout feature to tdc

Using an attribute set in the tdc_config.py file, limit the
amount of time tdc will wait for an executed command to
complete and prevent the script from hanging entirely.

This timeout will be applied to all executed commands.
Signed-off-by: NLucas Bates <lucasb@mojatatu.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 0fbe82e6
......@@ -131,12 +131,16 @@ def exec_cmd(args, pm, stage, command):
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
env=ENVIR)
(rawout, serr) = proc.communicate()
if proc.returncode != 0 and len(serr) > 0:
foutput = serr.decode("utf-8", errors="ignore")
else:
foutput = rawout.decode("utf-8", errors="ignore")
try:
(rawout, serr) = proc.communicate(timeout=NAMES['TIMEOUT'])
if proc.returncode != 0 and len(serr) > 0:
foutput = serr.decode("utf-8", errors="ignore")
else:
foutput = rawout.decode("utf-8", errors="ignore")
except subprocess.TimeoutExpired:
foutput = "Command \"{}\" timed out\n".format(command)
proc.returncode = 255
proc.stdout.close()
proc.stderr.close()
......@@ -438,6 +442,8 @@ def check_default_settings(args, remaining, pm):
NAMES['TC'] = args.path
if args.device != None:
NAMES['DEV2'] = args.device
if 'TIMEOUT' not in NAMES:
NAMES['TIMEOUT'] = None
if not os.path.isfile(NAMES['TC']):
print("The specified tc path " + NAMES['TC'] + " does not exist.")
exit(1)
......
......@@ -15,6 +15,8 @@ NAMES = {
'DEV1': 'v0p1',
'DEV2': '',
'BATCH_FILE': './batch.txt',
# Length of time in seconds to wait before terminating a command
'TIMEOUT': 12,
# Name of the namespace to use
'NS': 'tcut',
# Directory containing eBPF test programs
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册