Commit 6e9a12f8 authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

selftests: net: terminate bkg() commands on exception



There is a number of:

  with bkg("socat ..LISTEN..", exit_wait=True)

uses in the tests. If whatever is supposed to send the traffic
fails we will get stuck in the bkg(). Try to kill the process
in case of exception, to avoid the long wait.

A specific example where this happens is the devmem Tx tests.

Reviewed-by: default avatarJoe Damato <joe@dama.to>
Acked-by: default avatarStanislav Fomichev <sdf@fomichev.me>
Link: https://patch.msgid.link/20250811231334.561137-5-kuba@kernel.org


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 424e96de
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -117,6 +117,7 @@ class bkg(cmd):
                         shell=shell, fail=fail, ns=ns, host=host,
                         ksft_wait=ksft_wait)
        self.terminate = not exit_wait and not ksft_wait
        self._exit_wait = exit_wait
        self.check_fail = fail

        if shell and self.terminate:
@@ -127,7 +128,9 @@ class bkg(cmd):
        return self

    def __exit__(self, ex_type, ex_value, ex_tb):
        return self.process(terminate=self.terminate, fail=self.check_fail)
        # Force termination on exception
        terminate = self.terminate or (self._exit_wait and ex_type)
        return self.process(terminate=terminate, fail=self.check_fail)


global_defer_queue = []