From: SeongJae Park sjpark@amazon.de
Deletions of configs in the '.kunitconfig' is not applied because kunit rebuilds '.config' only if the '.config' is not a subset of the '.kunitconfig'. To allow the deletions to applied, this commit modifies the '.config' rebuild condition to addtionally check the modified times of those files.
Signed-off-by: SeongJae Park sjpark@amazon.de --- tools/testing/kunit/kunit_kernel.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/tools/testing/kunit/kunit_kernel.py b/tools/testing/kunit/kunit_kernel.py index cc5d844ecca1..a3a5d6c7e66d 100644 --- a/tools/testing/kunit/kunit_kernel.py +++ b/tools/testing/kunit/kunit_kernel.py @@ -111,17 +111,22 @@ class LinuxSourceTree(object): return True
def build_reconfig(self, build_dir): - """Creates a new .config if it is not a subset of the .kunitconfig.""" + """Creates a new .config if it is not a subset of, or older than the .kunitconfig.""" kconfig_path = get_kconfig_path(build_dir) if os.path.exists(kconfig_path): existing_kconfig = kunit_config.Kconfig() existing_kconfig.read_from_file(kconfig_path) - if not self._kconfig.is_subset_of(existing_kconfig): - print('Regenerating .config ...') - os.remove(kconfig_path) - return self.build_config(build_dir) - else: + subset = self._kconfig.is_subset_of(existing_kconfig) + + kunitconfig_mtime = os.path.getmtime(kunitconfig_path) + kconfig_mtime = os.path.getmtime(kconfig_path) + older = kconfig_mtime < kunitconfig_mtime + + if subset and not older: return True + print('Regenerating .config ...') + os.remove(kconfig_path) + return self.build_config(build_dir) else: print('Generating .config ...') return self.build_config(build_dir)