Re: [PATCH] kunit: run kunit_tool from any directory

From: Brendan Higgins
Date: Mon Feb 10 2020 - 19:32:00 EST


On Mon, Feb 10, 2020 at 4:26 PM Heidi Fahim <heidifahim@xxxxxxxxxx> wrote:
>
> Implemented small fix so that the script changes work directories to the
> linux directory where kunit.py is run. This enables the user to run
> kunit from any working directory. Originally considered using
> os.path.join but this is more error prone as we would have to find all
> file path usages and modify them accordingly. Using os.chdir ensures
> that the entire script is run within /linux.
>
> Signed-off-by: Heidi Fahim <heidifahim@xxxxxxxxxx>

Reviewed-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx>

Thanks!

> ---
> tools/testing/kunit/kunit.py | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/tools/testing/kunit/kunit.py b/tools/testing/kunit/kunit.py
> index e59eb9e7f923..3cc7be7b28a0 100755
> --- a/tools/testing/kunit/kunit.py
> +++ b/tools/testing/kunit/kunit.py
> @@ -35,6 +35,13 @@ def create_default_kunitconfig():
> shutil.copyfile('arch/um/configs/kunit_defconfig',
> kunit_kernel.kunitconfig_path)
>
> +def get_kernel_root_path():
> + parts = sys.argv[0] if not __file__ else __file__
> + parts = os.path.realpath(parts).split('tools/testing/kunit')
> + if len(parts) != 2:
> + sys.exit(1)
> + return parts[0]
> +
> def run_tests(linux: kunit_kernel.LinuxSourceTree,
> request: KunitRequest) -> KunitResult:
> config_start = time.time()
> @@ -114,6 +121,9 @@ def main(argv, linux=None):
> cli_args = parser.parse_args(argv)
>
> if cli_args.subcommand == 'run':
> + if get_kernel_root_path():
> + os.chdir(get_kernel_root_path())
> +
> if cli_args.build_dir:
> if not os.path.exists(cli_args.build_dir):
> os.mkdir(cli_args.build_dir)
> --
> 2.25.0.341.g760bfbb309-goog
>