Commit a84a1fe0 authored by Gal Pressman's avatar Gal Pressman Committed by Jakub Kicinski
Browse files

selftests: net: fix wrong boolean evaluation in __exit__



The __exit__ method receives ex_type as the exception class when an
exception occurs. The previous code used implicit boolean evaluation:

    terminate = self.terminate or (self._exit_wait and ex_type)
                                                   ^^^^^^^^^^^

In Python, the and operator can be used with non-boolean values, but it
does not always return a boolean result.

This is probably not what we want, because 'self._exit_wait and ex_type'
could return the actual ex_type value (the exception class) rather than
a boolean True when an exception occurs.

Use explicit `ex_type is not None` check to properly evaluate whether
an exception occurred, returning a boolean result.

Reviewed-by: default avatarNimrod Oren <noren@nvidia.com>
Signed-off-by: default avatarGal Pressman <gal@nvidia.com>
Link: https://patch.msgid.link/20260125105524.773993-1-gal@nvidia.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 3ccf393c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -160,7 +160,7 @@ class bkg(cmd):

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