mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-01 22:54:01 +00:00
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: Lucas Bates <lucasb@mojatatu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0fbe82e628
commit
d37e56df23
2 changed files with 13 additions and 5 deletions
|
@ -131,12 +131,16 @@ def exec_cmd(args, pm, stage, command):
|
|||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
env=ENVIR)
|
||||
(rawout, serr) = proc.communicate()
|
||||
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue