kunit: kunit_config: Fix parsing of CONFIG options with space
diff mbox series

Message ID 20200607215715.90981-1-rikard.falkeborn@gmail.com
State New
Headers show
Series
  • kunit: kunit_config: Fix parsing of CONFIG options with space
Related show

Commit Message

Rikard Falkeborn June 7, 2020, 9:57 p.m. UTC
Commit 8b59cd81dc5e ("kbuild: ensure full rebuild when the compiler is
updated") introduced a new CONFIG option CONFIG_CC_VERSION_TEXT. On my
system, this is set to "gcc (GCC) 10.1.0" which breaks KUnit config
parsing which did not like the spaces in the string.

Fix this by updating the regex to allow strings containing spaces.

Fixes: 8b59cd81dc5e ("kbuild: ensure full rebuild when the compiler is updated")
Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
---
Maybe it would have been sufficient to just use
CONFIG_PATTERN = r'^CONFIG_(\w+)=(.*)$' instead?

 tools/testing/kunit/kunit_config.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Brendan Higgins June 9, 2020, 7:58 p.m. UTC | #1
On Sun, Jun 7, 2020 at 2:57 PM Rikard Falkeborn
<rikard.falkeborn@gmail.com> wrote:
>
> Commit 8b59cd81dc5e ("kbuild: ensure full rebuild when the compiler is
> updated") introduced a new CONFIG option CONFIG_CC_VERSION_TEXT. On my
> system, this is set to "gcc (GCC) 10.1.0" which breaks KUnit config
> parsing which did not like the spaces in the string.
>
> Fix this by updating the regex to allow strings containing spaces.
>
> Fixes: 8b59cd81dc5e ("kbuild: ensure full rebuild when the compiler is updated")
> Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>

Reviewed-by: Brendan Higgins <brendanhiggins@google.com>

Thanks for the patch! I had been meaning to send out a fix for this
for a while, but never got around to it. :-)
David Gow June 30, 2020, 7:15 a.m. UTC | #2
On Mon, Jun 8, 2020 at 5:57 AM Rikard Falkeborn
<rikard.falkeborn@gmail.com> wrote:
>
> Commit 8b59cd81dc5e ("kbuild: ensure full rebuild when the compiler is
> updated") introduced a new CONFIG option CONFIG_CC_VERSION_TEXT. On my
> system, this is set to "gcc (GCC) 10.1.0" which breaks KUnit config
> parsing which did not like the spaces in the string.
>
> Fix this by updating the regex to allow strings containing spaces.
>
> Fixes: 8b59cd81dc5e ("kbuild: ensure full rebuild when the compiler is updated")
> Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>

Tested-by: David Gow <davidgow@google.com>

I've been using this patch quite a bit, and haven't hit any problems.

+Shuah: Any chance we get this into the kunit branch sooner rather
than later? The KUnit tooling is quite broken without it.

> ---
> Maybe it would have been sufficient to just use
> CONFIG_PATTERN = r'^CONFIG_(\w+)=(.*)$' instead?
>

FWIW, I tried this myself, and it seemed to work, but I think I like
requiring the quotes more.

Cheers,
-- David
Shuah Khan July 1, 2020, 7:10 p.m. UTC | #3
On 6/30/20 1:15 AM, David Gow wrote:
> On Mon, Jun 8, 2020 at 5:57 AM Rikard Falkeborn
> <rikard.falkeborn@gmail.com> wrote:
>>
>> Commit 8b59cd81dc5e ("kbuild: ensure full rebuild when the compiler is
>> updated") introduced a new CONFIG option CONFIG_CC_VERSION_TEXT. On my
>> system, this is set to "gcc (GCC) 10.1.0" which breaks KUnit config
>> parsing which did not like the spaces in the string.
>>
>> Fix this by updating the regex to allow strings containing spaces.
>>
>> Fixes: 8b59cd81dc5e ("kbuild: ensure full rebuild when the compiler is updated")
>> Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
> 
> Tested-by: David Gow <davidgow@google.com>
> 
> I've been using this patch quite a bit, and haven't hit any problems.
> 
> +Shuah: Any chance we get this into the kunit branch sooner rather
> than later? The KUnit tooling is quite broken without it.
> 


Applied to linux-kselftest kunit

https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git/log/?h=kunit

thanks,
-- Shuah

Patch
diff mbox series

diff --git a/tools/testing/kunit/kunit_config.py b/tools/testing/kunit/kunit_config.py
index e75063d603b5..02ffc3a3e5dc 100644
--- a/tools/testing/kunit/kunit_config.py
+++ b/tools/testing/kunit/kunit_config.py
@@ -10,7 +10,7 @@  import collections
 import re
 
 CONFIG_IS_NOT_SET_PATTERN = r'^# CONFIG_(\w+) is not set$'
-CONFIG_PATTERN = r'^CONFIG_(\w+)=(\S+)$'
+CONFIG_PATTERN = r'^CONFIG_(\w+)=(\S+|".*")$'
 
 KconfigEntryBase = collections.namedtuple('KconfigEntry', ['name', 'value'])