kunit: test: improve error messages for invalid kconfigs
Was trying to port an existing kunitconfig to the alpha branch and found
the error pretty opaque:
$ ./tools/testing/kunit/kunit.py run --raw_output
Regenerating .config ...
ERROR:root:Provided Kconfig is not contained in validated .config!
Include the missing fields in the error message:
$ ./tools/testing/kunit/kunit.py run --raw_output
Regenerating .config ...
ERROR:root:Provided Kconfig contains fields not in validated
.config: CONFIG_KUNIT=y, CONFIG_KUNIT_TEST=y,
CONFIG_KUNIT_EXAMPLE_TEST=y
Signed-off-by: Eric Chiang <ericchiang@google.com>
Change-Id: I04bf8cff499fd3e548a6a8da7ff3ea65e44a0161
diff --git a/tools/testing/kunit/kunit_kernel.py b/tools/testing/kunit/kunit_kernel.py
index 8a51ba3..7fbb492 100644
--- a/tools/testing/kunit/kunit_kernel.py
+++ b/tools/testing/kunit/kunit_kernel.py
@@ -106,7 +106,10 @@
validated_kconfig = kunit_config.Kconfig()
validated_kconfig.read_from_file(KCONFIG_PATH)
if not self._kconfig.is_subset_of(validated_kconfig):
- message = 'Provided Kconfig is not contained in validated .config!'
+ missing = self._kconfig.entries() - validated_kconfig.entries()
+ message = 'Provided Kconfig contains fields not in validated .config: %s' % (
+ ', '.join([str(e) for e in missing]),
+ )
logging.error(message)
return ConfigResult(ConfigStatus.FAILURE, message)
return ConfigResult(ConfigStatus.SUCCESS, 'Build config!')
@@ -136,7 +139,10 @@
used_kconfig = kunit_config.Kconfig()
used_kconfig.read_from_file(KCONFIG_PATH)
if not self._kconfig.is_subset_of(used_kconfig):
- message = 'Provided Kconfig is not contained in final config!'
+ missing = self._kconfig.entries() - validated_kconfig.entries()
+ message = 'Provided Kconfig contains fields not in final config: %s' % (
+ ', '.join([str(e) for e in missing]),
+ )
logging.error(message)
return BuildResult(BuildStatus.FAILURE, message)
return BuildResult(BuildStatus.SUCCESS, 'Built kernel!')