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

From: Frank Rowand
Date: Tue Feb 18 2020 - 15:08:48 EST


On 2/10/20 6:25 PM, Heidi Fahim 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

s/linux directory where/root of the linux kernel source tree from which/

The existing wording implies that the cd is to .../tools/testing/kunit/

-Frank

> 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>
> ---
> 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)
>