diff options
Diffstat (limited to 'tools/testing/selftests/net/lib/py/netns.py')
| -rw-r--r-- | tools/testing/selftests/net/lib/py/netns.py | 31 | 
1 files changed, 31 insertions, 0 deletions
diff --git a/tools/testing/selftests/net/lib/py/netns.py b/tools/testing/selftests/net/lib/py/netns.py new file mode 100644 index 000000000000..ecff85f9074f --- /dev/null +++ b/tools/testing/selftests/net/lib/py/netns.py @@ -0,0 +1,31 @@ +# SPDX-License-Identifier: GPL-2.0 + +from .utils import ip +import random +import string + + +class NetNS: +    def __init__(self, name=None): +        if name: +            self.name = name +        else: +            self.name = ''.join(random.choice(string.ascii_lowercase) for _ in range(8)) +        ip('netns add ' + self.name) + +    def __del__(self): +        if self.name: +            ip('netns del ' + self.name) +            self.name = None + +    def __enter__(self): +        return self + +    def __exit__(self, ex_type, ex_value, ex_tb): +        self.__del__() + +    def __str__(self): +        return self.name + +    def __repr__(self): +        return f"NetNS({self.name})"  | 
