kunit: tool: fix running kunit_tool from outside kernel tree
authorBrendan Higgins <brendanhiggins@google.com>
Tue, 11 Aug 2020 21:27:55 +0000 (14:27 -0700)
committerShuah Khan <skhan@linuxfoundation.org>
Mon, 31 Aug 2020 21:39:43 +0000 (15:39 -0600)
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@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/kunit/kunit.py

index 425ef40..e2caf4e 100755 (executable)
@@ -237,9 +237,13 @@ def main(argv, linux=None):
 
        cli_args = parser.parse_args(argv)
 
+       if get_kernel_root_path():
+               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()
 
                if not linux:
                        linux = kunit_kernel.LinuxSourceTree()
@@ -257,6 +261,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()
@@ -270,10 +275,6 @@ def main(argv, linux=None):
                if result.status != KunitStatus.SUCCESS:
                        sys.exit(1)
        elif cli_args.subcommand == 'build':
-               if cli_args.build_dir:
-                       if not os.path.exists(cli_args.build_dir):
-                               os.mkdir(cli_args.build_dir)
-
                if not linux:
                        linux = kunit_kernel.LinuxSourceTree()
 
@@ -288,10 +289,6 @@ def main(argv, linux=None):
                if result.status != KunitStatus.SUCCESS:
                        sys.exit(1)
        elif cli_args.subcommand == 'exec':
-               if cli_args.build_dir:
-                       if not os.path.exists(cli_args.build_dir):
-                               os.mkdir(cli_args.build_dir)
-
                if not linux:
                        linux = kunit_kernel.LinuxSourceTree()