[Concept,2/3] buildman: Fix flaky test_kconfig_change test
Commit Message
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(-)
@@ -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)