[09/13] testsuite: add support to run with bitbake hashserver

Message ID 20261002144936.246628-10-felix.moessbauer@siemens.com
State New
Headers show
Series More build time reductions | expand

Commit Message

Felix Moessbauer Oct. 2, 2026, 2:49 p.m. UTC
The bitbake hashserver stores sstate artifact hashes (task outputs), to
check which task inputs create the same task output. This helps to get a
better sstate cache hitrate, resulting in shorter build times (on
repeated builds with sstate cache).

To ensure that the hashserver received the SIGINT / SIGTERM on container
termination (needed for db closing), we exec avocado, which makes it a
direct child of the containers init process.

Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
---
 testsuite/cibuilder.py                         | 2 ++
 testsuite/dockerdata/test-container-entrypoint | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

Patch

diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py
index 0565f158..414a2b3e 100755
--- a/testsuite/cibuilder.py
+++ b/testsuite/cibuilder.py
@@ -257,6 +257,8 @@  class CIBuilder(Test):
                 f.write('SSTATE_DIR = "%s"\n' % sstate_dir)
             if sstate and 'SSTATE_MIRRORS' in os.environ:
                 f.write('SSTATE_MIRRORS = "%s"\n' % os.environ['SSTATE_MIRRORS'])
+            if 'BB_HASHSERVE_DB_DIR' in os.environ:
+                f.write('BB_HASHSERVE_DB_DIR = "%s"\n' % os.environ['BB_HASHSERVE_DB_DIR'])
             if image_install is not None:
                 f.write('IMAGE_INSTALL = "%s"\n' % image_install)
             else:
diff --git a/testsuite/dockerdata/test-container-entrypoint b/testsuite/dockerdata/test-container-entrypoint
index aa3def79..d263760d 100755
--- a/testsuite/dockerdata/test-container-entrypoint
+++ b/testsuite/dockerdata/test-container-entrypoint
@@ -124,6 +124,6 @@  if [ "${start_shell}" = 1 ]; then
 	bash
 else
 	set -x
-	avocado ${showopt} run ${args}
+	exec avocado ${showopt} run ${args}
 fi
 '