diff options
| author | Jakub Kicinski <kuba@kernel.org> | 2024-04-29 17:44:23 +0300 | 
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2024-04-30 18:15:32 +0300 | 
| commit | 32a4ca1361d7a51e5003d4af4dfbf570f1b5fd00 (patch) | |
| tree | ae88dade4a4cc727704e96456e9c090eee7329c2 /tools/testing/selftests/net/lib/py/utils.py | |
| parent | ff4b2bfa63bd07cca35f6e704dc5035650595950 (diff) | |
| download | linux-32a4ca1361d7a51e5003d4af4dfbf570f1b5fd00.tar.xz | |
selftests: net: py: extract tool logic
The main use of the ip() wrapper over cmd() is that it can parse JSON.
cmd("ip -j link show") will return stdout as a string, and test has
to call json.loads(). With ip("link show", json=True) the return value
will be already parsed.
More tools (ethtool, bpftool etc.) support the --json switch.
To avoid having to wrap all of them individually create a tool()
helper.
Switch from -j to --json (for ethtool).
While at it consume the netns attribute at the ip() level.
Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://lore.kernel.org/r/20240429144426.743476-4-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/testing/selftests/net/lib/py/utils.py')
| -rw-r--r-- | tools/testing/selftests/net/lib/py/utils.py | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/tools/testing/selftests/net/lib/py/utils.py b/tools/testing/selftests/net/lib/py/utils.py index d3715e6c21f2..4930a90a64ea 100644 --- a/tools/testing/selftests/net/lib/py/utils.py +++ b/tools/testing/selftests/net/lib/py/utils.py @@ -56,10 +56,10 @@ class bkg(cmd):          return self.process(terminate=self.terminate) -def ip(args, json=None, ns=None, host=None): -    cmd_str = "ip " +def tool(name, args, json=None, ns=None, host=None): +    cmd_str = name + ' '      if json: -        cmd_str += '-j ' +        cmd_str += '--json '      cmd_str += args      cmd_obj = cmd(cmd_str, ns=ns, host=host)      if json: @@ -67,6 +67,12 @@ def ip(args, json=None, ns=None, host=None):      return cmd_obj +def ip(args, json=None, ns=None, host=None): +    if ns: +        args = f'-netns {ns} ' + args +    return tool('ip', args, json=json, host=host) + +  def rand_port():      """      Get unprivileged port, for now just random, one day we may decide to check if used. | 
