From: Simon Glass <simon.glass@canonical.com> When CI has fewer CPUs than boards, one thread may process multiple boards. The .config from the first board persists in the thread's work directory, causing kconfig_changed_since() to return True for the next board's first commit, triggering an extra reconfig. Fix by forcing -T4 to ensure each board gets its own thread with an isolated work directory. Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- tools/buildman/func_test.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py index e748d302561..31cff04a060 100644 --- a/tools/buildman/func_test.py +++ b/tools/buildman/func_test.py @@ -1285,10 +1285,13 @@ something: me config_exists[0] = True return exists - # Run buildman with kconfig checking enabled + # Run buildman with kconfig checking enabled. Use -T4 to ensure each + # board gets its own thread, avoiding .config leaking between boards + # when a thread processes multiple boards (which happens with <4 CPUs) with mock.patch.object(builderthread, 'kconfig_changed_since', mock_kconfig_changed): - self._RunControl('-b', TEST_BRANCH, '-c2', '-o', self._output_dir) + self._RunControl('-b', TEST_BRANCH, '-c2', '-o', self._output_dir, + '-T4') # Verify kconfig_changed_since was called self.assertGreater(call_count[0], 0) -- 2.43.0