Skip to content

Commit e1bb5e6

Browse files
committed
selftests: net: py: check process exit code in bkg() and background cmd()
We're a bit too loose with error checking for background processes. cmd() completely ignores the fail argument passed to the constructor if background is True. Default to checking for errors if process is not terminated explicitly. Caller can override with True / False. For bkg() the processing step is called magically by __exit__ so record the value passed in the constructor. Reported-by: Willem de Bruijn <willemb@google.com> Tested-by: Willem de Bruijn <willemb@google.com> Link: https://lore.kernel.org/r/20240502025325.1924923-1-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 1c8f43f commit e1bb5e6

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

  • tools/testing/selftests/net/lib/py

tools/testing/selftests/net/lib/py/utils.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ def __init__(self, comm, shell=True, fail=True, ns=None, background=False, host=
2626
self.process(terminate=False, fail=fail)
2727

2828
def process(self, terminate=True, fail=None):
29+
if fail is None:
30+
fail = not terminate
31+
2932
if terminate:
3033
self.proc.terminate()
3134
stdout, stderr = self.proc.communicate(timeout=5)
@@ -43,17 +46,18 @@ def process(self, terminate=True, fail=None):
4346

4447

4548
class bkg(cmd):
46-
def __init__(self, comm, shell=True, fail=True, ns=None, host=None,
49+
def __init__(self, comm, shell=True, fail=None, ns=None, host=None,
4750
exit_wait=False):
4851
super().__init__(comm, background=True,
4952
shell=shell, fail=fail, ns=ns, host=host)
5053
self.terminate = not exit_wait
54+
self.check_fail = fail
5155

5256
def __enter__(self):
5357
return self
5458

5559
def __exit__(self, ex_type, ex_value, ex_tb):
56-
return self.process(terminate=self.terminate)
60+
return self.process(terminate=self.terminate, fail=self.check_fail)
5761

5862

5963
def tool(name, args, json=None, ns=None, host=None):

0 commit comments

Comments
 (0)