diff options
author | Jakub Kicinski <kuba@kernel.org> | 2024-04-25 15:23:40 -0700 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2024-04-26 16:10:26 -0700 |
commit | 64ed7d8190611c96744fd2b89afe6aeb3054902b (patch) | |
tree | 768fba6142cf3a710ccf123f4e48c63a1a31f102 /tools | |
parent | f8ac9b0fab33ed138da80b95b94d8be16b07c6fd (diff) |
selftests: drv-net: reimplement the config parser
The shell lexer is not helping much, do very basic parsing
manually.
Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://lore.kernel.org/r/20240425222341.309778-3-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/testing/selftests/drivers/net/lib/py/env.py | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/tools/testing/selftests/drivers/net/lib/py/env.py b/tools/testing/selftests/drivers/net/lib/py/env.py index a3db1bb1afeb..6f57bd5c0ed7 100644 --- a/tools/testing/selftests/drivers/net/lib/py/env.py +++ b/tools/testing/selftests/drivers/net/lib/py/env.py @@ -1,7 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 import os -import shlex from pathlib import Path from lib.py import KsftSkipEx from lib.py import cmd, ip @@ -16,17 +15,20 @@ def _load_env_file(src_path): if not (src_dir / "net.config").exists(): return env - lexer = shlex.shlex(open((src_dir / "net.config").as_posix(), 'r').read()) - k = None - for token in lexer: - if k is None: - k = token - env[k] = "" - elif token == "=": - pass - else: - env[k] = token - k = None + with open((src_dir / "net.config").as_posix(), 'r') as fp: + for line in fp.readlines(): + full_file = line + # Strip comments + pos = line.find("#") + if pos >= 0: + line = line[:pos] + line = line.strip() + if not line: + continue + pair = line.split('=', maxsplit=1) + if len(pair) != 2: + raise Exception("Can't parse configuration line:", full_file) + env[pair[0]] = pair[1] return env |