Skip to content

feat: Add integration test framework#126

Draft
lurtz wants to merge 49 commits into
mainfrom
add-score-itf-for-intergration-tests
Draft

feat: Add integration test framework#126
lurtz wants to merge 49 commits into
mainfrom
add-score-itf-for-intergration-tests

Conversation

@lurtz
Copy link
Copy Markdown
Contributor

@lurtz lurtz commented May 18, 2026

We need a way to run integration tests and in the best case they are oblivious to the platform they are run on. For that reason the code from communication/quality has been copied, but the sanitizer tests have been excluded.

It abstracts at the moment running the test in Docker on Linux and QEMU on QNX. Optionally on Linux tests can be run using QEMU.

#19 is similar. It focuses only on QNX and runs two QEMU instances.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 18, 2026

License Check Results

🚀 The license check job ran with the Bazel command:

bazel run //:license-check

Status: ⚠️ Needs Review

Click to expand output
[License Check Output]
2026/05/22 21:52:34 Downloading https://releases.bazel.build/8.4.1/release/bazel-8.4.1-linux-x86_64...
Extracting Bazel installation...
Starting local Bazel server (8.4.1) and connecting to it...
INFO: Invocation ID: 9fd1a1a5-ed15-4404-a053-9bd29a536656
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Loading: 
Loading: 4 packages loaded
Loading: 4 packages loaded
    currently loading: 
Loading: 4 packages loaded
    currently loading: 
Loading: 4 packages loaded
    currently loading: 
Analyzing: target //:license-check (5 packages loaded, 0 targets configured)
Analyzing: target //:license-check (5 packages loaded, 0 targets configured)

Analyzing: target //:license-check (38 packages loaded, 10 targets configured)

Analyzing: target //:license-check (98 packages loaded, 12 targets configured)

Analyzing: target //:license-check (153 packages loaded, 2767 targets configured)

Analyzing: target //:license-check (165 packages loaded, 5523 targets configured)

Analyzing: target //:license-check (168 packages loaded, 8258 targets configured)

Analyzing: target //:license-check (168 packages loaded, 8258 targets configured)

Analyzing: target //:license-check (177 packages loaded, 8421 targets configured)

Analyzing: target //:license-check (181 packages loaded, 10428 targets configured)

Analyzing: target //:license-check (181 packages loaded, 10428 targets configured)

INFO: Analyzed target //:license-check (182 packages loaded, 12007 targets configured).
[10 / 17] Creating runfiles tree bazel-out/k8-opt-exec-ST-d57f47055a04/bin/external/score_tooling+/dash/tool/formatters/dash_format_converter.runfiles [for tool]; 0s local ... (2 actions, 1 running)
INFO: From Generating Dash formatted dependency file ...:
INFO: Successfully converted 2 packages from Cargo.lock to bazel-out/k8-fastbuild/bin/formatted.txt
INFO: Found 1 target...
Target //:license.check.license_check up-to-date:
  bazel-bin/license.check.license_check
  bazel-bin/license.check.license_check.jar
INFO: Elapsed time: 213.449s, Critical Path: 0.43s
INFO: 17 processes: 5 disk cache hit, 12 internal.
INFO: Build completed successfully, 17 total actions
INFO: Running command line: bazel-bin/license.check.license_check ./formatted.txt <args omitted>
usage: org.eclipse.dash.licenses.cli.Main [-batch <int>] [-cd <url>]
       [-confidence <int>] [-ef <url>] [-excludeSources <sources>] [-help] [-lic
       <url>] [-project <shortname>] [-repo <url>] [-review] [-summary <file>]
       [-timeout <seconds>] [-token <token>]

@github-actions
Copy link
Copy Markdown

The created documentation from the pull request is available at: docu-html

lurtz added 8 commits May 22, 2026 10:13
Bazel 8.3.0 introduced a repo_contents_cache feature (--repo_contents_cache)
that has a known bug (#26450): root-level non-directory files (such as
symlinks) are silently removed from cached repository contents. This causes
the rules_python 1.9.0 host_compatible_python_repo rule to fail:

  execvp(.../python_3_12_host/python, ...): No such file or directory

Because python_3_12_host/python is an absolute symlink to the python binary
in the impl repo (python_3_12_x86_64-unknown-linux-gnu), and that symlink is
a root-level file that gets dropped by the buggy cache.

Bazel 8.4.0 disables repo_contents_cache by default as a workaround. This
upgrade from 8.3.0 to 8.4.1 fixes the QNX CI python_3_12_host failure.

Also fix Starlark formatting in quality/integration_testing/plugins/linux_qemu/BUILD:
reorder py_test attributes to satisfy buildifier ordering requirements.
Comment thread .bazelversion
@@ -1 +1 @@
8.3.0
8.4.1
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With older bazel version Python 3.12 is not found in QNX builds

Comment thread MODULE.bazel
module_name = "score_bazel_cpp_toolchains",
commit = "30d9f4151db55af066e5bbf8a0a3672469ec0293", # Last verified: 2026-04-09
remote = "https://github.com/etas-contrib/score_bazel_cpp_toolchains.git",
)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can likely be removed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant