2020-06-18 04:01:32

by Vitor Massaru Iha

[permalink] [raw]
Subject: [PATCH] kunit: fix KconfigParseError by ignoring CC_VERSION_TEXT

Commit 8b59cd81dc5 ("kbuild: ensure full rebuild when the compiler
is updated") added the environment variable CC_VERSION_TEXT,
parse_from_string() doesn't expect a string and this causes the
failure below:

[iha@bbking linux]$ tools/testing/kunit/kunit.py run --timeout=60
[00:20:12] Configuring KUnit Kernel ...
Generating .config ...
Traceback (most recent call last):
File "tools/testing/kunit/kunit.py", line 347, in <module>
main(sys.argv[1:])
File "tools/testing/kunit/kunit.py", line 257, in main
result = run_tests(linux, request)
File "tools/testing/kunit/kunit.py", line 134, in run_tests
config_result = config_tests(linux, config_request)
File "tools/testing/kunit/kunit.py", line 64, in config_tests
success = linux.build_reconfig(request.build_dir, request.make_options)
File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_kernel.py", line 161, in build_reconfig
return self.build_config(build_dir, make_options)
File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_kernel.py", line 145, in build_config
return self.validate_config(build_dir)
File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_kernel.py", line 124, in validate_config
validated_kconfig.read_from_file(kconfig_path)
File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_config.py", line 89, in read_from_file
self.parse_from_string(f.read())
File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_config.py", line 85, in parse_from_string
raise KconfigParseError('Failed to parse: ' + line)
kunit_config.KconfigParseError: Failed to parse: CONFIG_CC_VERSION_TEXT="gcc (GCC) 10.1.1 20200507 (Red Hat 10.1.1-1)"

Signed-off-by: Vitor Massaru Iha <[email protected]>
---
tools/testing/kunit/kunit_config.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/testing/kunit/kunit_config.py b/tools/testing/kunit/kunit_config.py
index e75063d603b5..3033520597b6 100644
--- a/tools/testing/kunit/kunit_config.py
+++ b/tools/testing/kunit/kunit_config.py
@@ -9,6 +9,7 @@
import collections
import re

+CONFIG_IGNORE_CC_VERSION_TEXT = 'CONFIG_CC_VERSION_TEXT'
CONFIG_IS_NOT_SET_PATTERN = r'^# CONFIG_(\w+) is not set$'
CONFIG_PATTERN = r'^CONFIG_(\w+)=(\S+)$'

@@ -79,7 +80,7 @@ class Kconfig(object):
self.add_entry(entry)
continue

- if line[0] == '#':
+ if line[0] == '#' or CONFIG_IGNORE_CC_VERSION_TEXT in line:
continue
else:
raise KconfigParseError('Failed to parse: ' + line)

base-commit: 7bf200b3a4ac10b1b0376c70b8c66ed39eae7cdd
--
2.26.2


2020-06-18 20:45:33

by Vitor Massaru Iha

[permalink] [raw]
Subject: Re: [PATCH] kunit: fix KconfigParseError by ignoring CC_VERSION_TEXT

On Thu, 2020-06-18 at 13:29 -0700, Brendan Higgins wrote:
> On Wed, Jun 17, 2020 at 8:57 PM Vitor Massaru Iha <[email protected]>
> wrote:
> > Commit 8b59cd81dc5 ("kbuild: ensure full rebuild when the compiler
> > is updated") added the environment variable CC_VERSION_TEXT,
> > parse_from_string() doesn't expect a string and this causes the
> > failure below:
> >
> > [iha@bbking linux]$ tools/testing/kunit/kunit.py run --timeout=60
> > [00:20:12] Configuring KUnit Kernel ...
> > Generating .config ...
> > Traceback (most recent call last):
> > File "tools/testing/kunit/kunit.py", line 347, in <module>
> > main(sys.argv[1:])
> > File "tools/testing/kunit/kunit.py", line 257, in main
> > result = run_tests(linux, request)
> > File "tools/testing/kunit/kunit.py", line 134, in run_tests
> > config_result = config_tests(linux, config_request)
> > File "tools/testing/kunit/kunit.py", line 64, in config_tests
> > success = linux.build_reconfig(request.build_dir,
> > request.make_options)
> > File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_kernel.py",
> > line 161, in build_reconfig
> > return self.build_config(build_dir, make_options)
> > File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_kernel.py",
> > line 145, in build_config
> > return self.validate_config(build_dir)
> > File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_kernel.py",
> > line 124, in validate_config
> > validated_kconfig.read_from_file(kconfig_path)
> > File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_config.py",
> > line 89, in read_from_file
> > self.parse_from_string(f.read())
> > File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_config.py",
> > line 85, in parse_from_string
> > raise KconfigParseError('Failed to parse: ' + line)
> > kunit_config.KconfigParseError: Failed to parse:
> > CONFIG_CC_VERSION_TEXT="gcc (GCC) 10.1.1 20200507 (Red Hat 10.1.1-
> > 1)"
>
> I am pretty there is already a fix out for this issue:
>
> https://patchwork.kernel.org/patch/11592313/
>
> Can you confirm?

Sure, thanks!

2020-06-18 20:45:33

by Brendan Higgins

[permalink] [raw]
Subject: Re: [PATCH] kunit: fix KconfigParseError by ignoring CC_VERSION_TEXT

On Wed, Jun 17, 2020 at 8:57 PM Vitor Massaru Iha <[email protected]> wrote:
>
> Commit 8b59cd81dc5 ("kbuild: ensure full rebuild when the compiler
> is updated") added the environment variable CC_VERSION_TEXT,
> parse_from_string() doesn't expect a string and this causes the
> failure below:
>
> [iha@bbking linux]$ tools/testing/kunit/kunit.py run --timeout=60
> [00:20:12] Configuring KUnit Kernel ...
> Generating .config ...
> Traceback (most recent call last):
> File "tools/testing/kunit/kunit.py", line 347, in <module>
> main(sys.argv[1:])
> File "tools/testing/kunit/kunit.py", line 257, in main
> result = run_tests(linux, request)
> File "tools/testing/kunit/kunit.py", line 134, in run_tests
> config_result = config_tests(linux, config_request)
> File "tools/testing/kunit/kunit.py", line 64, in config_tests
> success = linux.build_reconfig(request.build_dir, request.make_options)
> File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_kernel.py", line 161, in build_reconfig
> return self.build_config(build_dir, make_options)
> File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_kernel.py", line 145, in build_config
> return self.validate_config(build_dir)
> File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_kernel.py", line 124, in validate_config
> validated_kconfig.read_from_file(kconfig_path)
> File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_config.py", line 89, in read_from_file
> self.parse_from_string(f.read())
> File "/home/iha/lkmp/linux/tools/testing/kunit/kunit_config.py", line 85, in parse_from_string
> raise KconfigParseError('Failed to parse: ' + line)
> kunit_config.KconfigParseError: Failed to parse: CONFIG_CC_VERSION_TEXT="gcc (GCC) 10.1.1 20200507 (Red Hat 10.1.1-1)"

I am pretty there is already a fix out for this issue:

https://patchwork.kernel.org/patch/11592313/

Can you confirm?