kunit: kunit_tool: Allow .kunitconfig to disable config items

[This is a backport of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=97752c39bdaeea990260d3111250f6c861519808
]

Rework kunit_tool in order to allow .kunitconfig files to better enforce
that disabled items in .kunitconfig are disabled in the generated
.config.

Previously, kunit_tool simply enforced that any line present in
.kunitconfig was also present in .config, but this could cause problems
if a config option was disabled in .kunitconfig, but not listed in
.config due to (for example) having disabled dependencies.

To fix this, re-work the parser to track config names and values, and
require values to match unless they are explicitly disabled with the
"CONFIG_x is not set" comment (or by setting its value to 'n'). Those
"disabled" values will pass validation if omitted from the .config, but
not if they have a different value.

Signed-off-by: David Gow <davidgow@google.com>
Change-Id: I984c459682af33cc77e1b1ee1a19636e301284c5
2 files changed