2022-05-18 17:06:37

by Daniel Latypov

[permalink] [raw]
Subject: [PATCH 2/3] kunit: tool: simplify creating LinuxSourceTreeOperations

Drop get_source_tree_ops() and just call what used to be
get_source_tree_ops_from_qemu_config() in both cases.

Also rename the functions to have shorter names and add a "_" prefix to
note they're not meant to be used outside this function.

Signed-off-by: Daniel Latypov <[email protected]>
---
tools/testing/kunit/kunit_kernel.py | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/tools/testing/kunit/kunit_kernel.py b/tools/testing/kunit/kunit_kernel.py
index 8bc8305ba817..e93f07ac0af1 100644
--- a/tools/testing/kunit/kunit_kernel.py
+++ b/tools/testing/kunit/kunit_kernel.py
@@ -178,19 +178,16 @@ def get_old_kunitconfig_path(build_dir: str) -> str:
def get_outfile_path(build_dir: str) -> str:
return os.path.join(build_dir, OUTFILE_PATH)

-def get_source_tree_ops(arch: str, cross_compile: Optional[str]) -> LinuxSourceTreeOperations:
+def _default_qemu_config_path(arch: str) -> str:
config_path = os.path.join(QEMU_CONFIGS_DIR, arch + '.py')
- if arch == 'um':
- return LinuxSourceTreeOperationsUml(cross_compile=cross_compile)
if os.path.isfile(config_path):
- return get_source_tree_ops_from_qemu_config(config_path, cross_compile)[1]
+ return config_path

options = [f[:-3] for f in os.listdir(QEMU_CONFIGS_DIR) if f.endswith('.py')]
raise ConfigError(arch + ' is not a valid arch, options are ' + str(sorted(options)))

-def get_source_tree_ops_from_qemu_config(config_path: str,
- cross_compile: Optional[str]) -> Tuple[
- str, LinuxSourceTreeOperations]:
+def _get_qemu_ops(config_path: str,
+ cross_compile: Optional[str]) -> Tuple[str, LinuxSourceTreeOperations]:
# The module name/path has very little to do with where the actual file
# exists (I learned this through experimentation and could not find it
# anywhere in the Python documentation).
@@ -226,11 +223,14 @@ class LinuxSourceTree:
qemu_config_path=None) -> None:
signal.signal(signal.SIGINT, self.signal_handler)
if qemu_config_path:
- self._arch, self._ops = get_source_tree_ops_from_qemu_config(
- qemu_config_path, cross_compile)
+ self._arch, self._ops = _get_qemu_ops(qemu_config_path, cross_compile)
else:
self._arch = 'um' if arch is None else arch
- self._ops = get_source_tree_ops(self._arch, cross_compile)
+ if self._arch == 'um':
+ self._ops = LinuxSourceTreeOperationsUml(cross_compile=cross_compile)
+ else:
+ qemu_config_path = _default_qemu_config_path(self._arch)
+ _, self._ops = _get_qemu_ops(qemu_config_path, cross_compile)

if kunitconfig_path:
if os.path.isdir(kunitconfig_path):
--
2.36.1.124.g0e6072fb45-goog



2022-05-20 12:12:34

by David Gow

[permalink] [raw]
Subject: Re: [PATCH 2/3] kunit: tool: simplify creating LinuxSourceTreeOperations

On Thu, May 19, 2022 at 1:01 AM Daniel Latypov <[email protected]> wrote:
>
> Drop get_source_tree_ops() and just call what used to be
> get_source_tree_ops_from_qemu_config() in both cases.
>
> Also rename the functions to have shorter names and add a "_" prefix to
> note they're not meant to be used outside this function.
>
> Signed-off-by: Daniel Latypov <[email protected]>
> ---

Reviewed-by: David Gow <[email protected]>


-- David

> tools/testing/kunit/kunit_kernel.py | 20 ++++++++++----------
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/tools/testing/kunit/kunit_kernel.py b/tools/testing/kunit/kunit_kernel.py
> index 8bc8305ba817..e93f07ac0af1 100644
> --- a/tools/testing/kunit/kunit_kernel.py
> +++ b/tools/testing/kunit/kunit_kernel.py
> @@ -178,19 +178,16 @@ def get_old_kunitconfig_path(build_dir: str) -> str:
> def get_outfile_path(build_dir: str) -> str:
> return os.path.join(build_dir, OUTFILE_PATH)
>
> -def get_source_tree_ops(arch: str, cross_compile: Optional[str]) -> LinuxSourceTreeOperations:
> +def _default_qemu_config_path(arch: str) -> str:
> config_path = os.path.join(QEMU_CONFIGS_DIR, arch + '.py')
> - if arch == 'um':
> - return LinuxSourceTreeOperationsUml(cross_compile=cross_compile)
> if os.path.isfile(config_path):
> - return get_source_tree_ops_from_qemu_config(config_path, cross_compile)[1]
> + return config_path
>
> options = [f[:-3] for f in os.listdir(QEMU_CONFIGS_DIR) if f.endswith('.py')]
> raise ConfigError(arch + ' is not a valid arch, options are ' + str(sorted(options)))
>
> -def get_source_tree_ops_from_qemu_config(config_path: str,
> - cross_compile: Optional[str]) -> Tuple[
> - str, LinuxSourceTreeOperations]:
> +def _get_qemu_ops(config_path: str,
> + cross_compile: Optional[str]) -> Tuple[str, LinuxSourceTreeOperations]:
> # The module name/path has very little to do with where the actual file
> # exists (I learned this through experimentation and could not find it
> # anywhere in the Python documentation).
> @@ -226,11 +223,14 @@ class LinuxSourceTree:
> qemu_config_path=None) -> None:
> signal.signal(signal.SIGINT, self.signal_handler)
> if qemu_config_path:
> - self._arch, self._ops = get_source_tree_ops_from_qemu_config(
> - qemu_config_path, cross_compile)
> + self._arch, self._ops = _get_qemu_ops(qemu_config_path, cross_compile)
> else:
> self._arch = 'um' if arch is None else arch
> - self._ops = get_source_tree_ops(self._arch, cross_compile)
> + if self._arch == 'um':
> + self._ops = LinuxSourceTreeOperationsUml(cross_compile=cross_compile)
> + else:
> + qemu_config_path = _default_qemu_config_path(self._arch)
> + _, self._ops = _get_qemu_ops(qemu_config_path, cross_compile)
>
> if kunitconfig_path:
> if os.path.isdir(kunitconfig_path):
> --
> 2.36.1.124.g0e6072fb45-goog
>


Attachments:
smime.p7s (3.91 kB)
S/MIME Cryptographic Signature

2022-07-06 20:34:07

by Brendan Higgins

[permalink] [raw]
Subject: Re: [PATCH 2/3] kunit: tool: simplify creating LinuxSourceTreeOperations

On Wed, May 18, 2022 at 1:01 PM Daniel Latypov <[email protected]> wrote:
>
> Drop get_source_tree_ops() and just call what used to be
> get_source_tree_ops_from_qemu_config() in both cases.
>
> Also rename the functions to have shorter names and add a "_" prefix to
> note they're not meant to be used outside this function.
>
> Signed-off-by: Daniel Latypov <[email protected]>

Reviewed-by: Brendan Higgins <[email protected]>