Re: [PATCH v1 1/2] kunit: tool: fix running kunit_tool from outside kernel tree

From: David Gow
Date: Sat Aug 08 2020 - 01:45:25 EST


On Sat, Aug 8, 2020 at 9:17 AM Brendan Higgins
<brendanhiggins@xxxxxxxxxx> wrote:
>
> Currently kunit_tool does not work correctly when executed from a path
> outside of the kernel tree, so make sure that the current working
> directory is correct and the kunit_dir is properly initialized before
> running.
>
> Signed-off-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx>
> ---
> tools/testing/kunit/kunit.py | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/tools/testing/kunit/kunit.py b/tools/testing/kunit/kunit.py
> index 425ef40067e7..96344a11ff1f 100755
> --- a/tools/testing/kunit/kunit.py
> +++ b/tools/testing/kunit/kunit.py
> @@ -237,9 +237,14 @@ def main(argv, linux=None):
>
> cli_args = parser.parse_args(argv)
>
> + if get_kernel_root_path():
> + print('cd ' + get_kernel_root_path())
Do we want to print this, or is it a leftover debug statement?


> + os.chdir(get_kernel_root_path())
> +
> if cli_args.subcommand == 'run':
> if not os.path.exists(cli_args.build_dir):
> os.mkdir(cli_args.build_dir)
> + create_default_kunitconfig()
Why are we adding this everywhere when it's already in config_tests,
which should already be called in all of the places where a
kunitconfig is required?
Is the goal to always copy the default kunitconfig when creating a new
build_dir? While I can sort-of see why we might want to do that, if
the build dir doesn't exist, most of the subcommands will fail anyway
(maybe we should only create the build-dir for 'config' and 'run'?)


>
> if not linux:
> linux = kunit_kernel.LinuxSourceTree()
> @@ -257,6 +262,7 @@ def main(argv, linux=None):
> if cli_args.build_dir:
> if not os.path.exists(cli_args.build_dir):
> os.mkdir(cli_args.build_dir)
> + create_default_kunitconfig()
>
> if not linux:
> linux = kunit_kernel.LinuxSourceTree()
> @@ -273,6 +279,7 @@ def main(argv, linux=None):
> if cli_args.build_dir:
> if not os.path.exists(cli_args.build_dir):
> os.mkdir(cli_args.build_dir)
> + create_default_kunitconfig()
>
> if not linux:
> linux = kunit_kernel.LinuxSourceTree()
> @@ -291,6 +298,7 @@ def main(argv, linux=None):
> if cli_args.build_dir:
> if not os.path.exists(cli_args.build_dir):
> os.mkdir(cli_args.build_dir)
> + create_default_kunitconfig()
>
> if not linux:
> linux = kunit_kernel.LinuxSourceTree()
>
> base-commit: 30185b69a2d533c4ba6ca926b8390ce7de495e29
> --
> 2.28.0.236.gb10cc79966-goog
>