Re: [PATCH] kunit: Fix TabError, remove defconfig code and handle when there is no kunitconfig

2020-06-02 Thread Shuah Khan

On 5/29/20 1:28 PM, Vitor Massaru Iha wrote:

The identation before this code (`if not os.path.exists(cli_args.build_dir):``)
was with spaces instead of tabs after fixed up merge conflits,
this commit revert spaces to tabs:




Applied to linux-kselftest kunit branch for Linux 5.8-rc1

thanks,
-- Shuah


[PATCH] kunit: Fix TabError, remove defconfig code and handle when there is no kunitconfig

2020-05-29 Thread Vitor Massaru Iha
The identation before this code (`if not os.path.exists(cli_args.build_dir):``)
was with spaces instead of tabs after fixed up merge conflits,
this commit revert spaces to tabs:

[iha@bbking linux]$ tools/testing/kunit/kunit.py run
  File "tools/testing/kunit/kunit.py", line 247
if not linux:
^
TabError: inconsistent use of tabs and spaces in indentation

Remove defconfig related code to fix these two errors,
the commit 9bdf64b35 was created before 45ba7a893ad,
and the commit 9bdf64b35 removes defconfig related code:

[iha@bbking linux]$ tools/testing/kunit/kunit.py run
Traceback (most recent call last):
  File "tools/testing/kunit/kunit.py", line 338, in 
main(sys.argv[1:])
  File "tools/testing/kunit/kunit.py", line 215, in main
add_config_opts(config_parser)

[iha@bbking linux]$ tools/testing/kunit/kunit.py run
Traceback (most recent call last):
  File "tools/testing/kunit/kunit.py", line 337, in 
main(sys.argv[1:])
  File "tools/testing/kunit/kunit.py", line 255, in main
result = run_tests(linux, request)
  File "tools/testing/kunit/kunit.py", line 133, in run_tests
request.defconfig,
AttributeError: 'KunitRequest' object has no attribute 'defconfig'

Handles when there is no .kunitconfig, the error occurs because
commit 9bdf64b35 was created before 45ba7a893ad.

[iha@bbking linux]$ tools/testing/kunit/kunit.py run
Traceback (most recent call last):
  File "tools/testing/kunit/kunit.py", line 335, in 
main(sys.argv[1:])
  File "tools/testing/kunit/kunit.py", line 246, in main
linux = kunit_kernel.LinuxSourceTree()
  File 
"/home/iha/sdb/opensource/lkmp/linux/tools/testing/kunit/kunit_kernel.py", line 
109, in __init__
self._kconfig.read_from_file(kunitconfig_path)
  File 
"/home/iha/sdb/opensource/lkmp/linux/tools/testing/kunit/kunit_config.py", line 
88, in read_from_file
with open(path, 'r') as f:
FileNotFoundError: [Errno 2] No such file or directory: '.kunit/.kunitconfig'

Signed-off-by: Vitor Massaru Iha 
---
Fix the fixup on this commits: 9bdf64b, ddbd60c.

Some errors occurs because these commits were created before
this commit 45ba7a8, as explained in the commit message.
---
 tools/testing/kunit/kunit.py | 27 ++-
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/tools/testing/kunit/kunit.py b/tools/testing/kunit/kunit.py
index ec73b07d1265..787b6d4ad716 100755
--- a/tools/testing/kunit/kunit.py
+++ b/tools/testing/kunit/kunit.py
@@ -23,7 +23,7 @@ import kunit_parser
 KunitResult = namedtuple('KunitResult', ['status','result','elapsed_time'])
 
 KunitConfigRequest = namedtuple('KunitConfigRequest',
-   ['build_dir', 'defconfig', 'make_options'])
+   ['build_dir', 'make_options'])
 KunitBuildRequest = namedtuple('KunitBuildRequest',
   ['jobs', 'build_dir', 'alltests',
'make_options'])
@@ -130,7 +130,6 @@ def run_tests(linux: kunit_kernel.LinuxSourceTree,
run_start = time.time()
 
config_request = KunitConfigRequest(request.build_dir,
-   request.defconfig,
request.make_options)
config_result = config_tests(linux, config_request)
if config_result.status != KunitStatus.SUCCESS:
@@ -212,7 +211,6 @@ def main(argv, linux=None):
help='Ensures that .config 
contains all of '
'the options in .kunitconfig')
add_common_opts(config_parser)
-   add_config_opts(config_parser)
 
build_parser = subparser.add_parser('build', help='Builds a kernel with 
KUnit tests')
add_common_opts(build_parser)
@@ -238,11 +236,14 @@ def main(argv, linux=None):
cli_args = parser.parse_args(argv)
 
if cli_args.subcommand == 'run':
-if not os.path.exists(cli_args.build_dir):
-os.mkdir(cli_args.build_dir)
-kunit_kernel.kunitconfig_path = os.path.join(
-cli_args.build_dir,
-kunit_kernel.kunitconfig_path)
+   if not os.path.exists(cli_args.build_dir):
+   os.mkdir(cli_args.build_dir)
+   kunit_kernel.kunitconfig_path = os.path.join(
+   cli_args.build_dir,
+   kunit_kernel.kunitconfig_path)
+
+   if not os.path.exists(kunit_kernel.kunitconfig_path):
+   create_default_kunitconfig()
 
if not linux:
linux = kunit_kernel.LinuxSourceTree()
@@ -264,11 +265,13 @@ def main(argv, linux=None):
cli_args.build_dir,
kunit_kernel.kunitconfig_path)
 
+   if not os.path.exists(kunit_kernel.kunitconfig_path):
+   create_default_kunitconfig()
+