Skip to content

Conversation

@WilliamRoebuck
Copy link
Contributor

Add a basic setup to run system-level tests for lifecycle on the host machine. Resolves eclipse-score/score#2403

The minimal example shows a GTEST executable launched by LM that tests simple state transitions.

@github-actions
Copy link

github-actions bot commented Feb 5, 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]
Extracting Bazel installation...
Starting local Bazel server (8.4.2) and connecting to it...
INFO: Invocation ID: e1e2f11c-8043-4664-9f77-1f04baea567f
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
DEBUG: Rule 'rust_qnx8_toolchain+' indicated that a canonical reproducible form can be obtained by modifying arguments integrity = "sha256-eQOopREOYCL5vtTb6c1cwZrql4GVrJ1FqgxarQRe1xs="
DEBUG: Repository rust_qnx8_toolchain+ instantiated at:
  <builtin>: in <toplevel>
Repository rule http_archive defined at:
  /home/runner/.bazel/external/bazel_tools/tools/build_defs/repo/http.bzl:431:31: in <toplevel>
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
WARNING: For repository 'score_bazel_platforms', the root module requires module version score_bazel_platforms@0.0.3, but got score_bazel_platforms@0.0.4 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'score_tooling', the root module requires module version score_tooling@1.0.5, but got score_tooling@1.1.0 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Loading: 
Loading: 2 packages loaded
Loading: 2 packages loaded
    currently loading: 
Loading: 2 packages loaded
    currently loading: 
Loading: 2 packages loaded
    currently loading: 
Loading: 2 packages loaded
    currently loading: 
Analyzing: target //:license-check (3 packages loaded, 0 targets configured)
Analyzing: target //:license-check (3 packages loaded, 0 targets configured)

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

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

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

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

Analyzing: target //:license-check (142 packages loaded, 2496 targets configured)

Analyzing: target //:license-check (150 packages loaded, 4041 targets configured)

Analyzing: target //:license-check (150 packages loaded, 7395 targets configured)

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

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

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

Analyzing: target //:license-check (160 packages loaded, 9545 targets configured)

INFO: Analyzed target //:license-check (162 packages loaded, 13697 targets configured).
[7 / 13] 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)
[10 / 13] JavaToolchainCompileClasses external/rules_java+/toolchains/platformclasspath_classes; 1s disk-cache, processwrapper-sandbox
[11 / 13] JavaToolchainCompileBootClasspath external/rules_java+/toolchains/platformclasspath.jar; 0s disk-cache, processwrapper-sandbox
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: 37.705s, Critical Path: 2.89s
INFO: 13 processes: 9 internal, 3 processwrapper-sandbox, 1 worker.
INFO: Build completed successfully, 13 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>]

@WilliamRoebuck WilliamRoebuck force-pushed the feature/system-testing-setup branch from b8443f6 to 905218a Compare February 5, 2026 12:06
@github-actions
Copy link

github-actions bot commented Feb 5, 2026

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

@WilliamRoebuck WilliamRoebuck force-pushed the feature/system-testing-setup branch from 905218a to cd6a17e Compare February 10, 2026 14:48
@WilliamRoebuck WilliamRoebuck force-pushed the feature/system-testing-setup branch from cd6a17e to 296fe44 Compare February 10, 2026 14:49
@WilliamRoebuck WilliamRoebuck force-pushed the feature/system-testing-setup branch from 296fe44 to e22ba60 Compare February 10, 2026 14:50
- Local execution
- Launching LM daemon with a config
- GTEST processes launched by LM with test results parsed
- Test timeout
- Scaffolding for platform independent python scripts
- Running LM without root
- setgroups() is not attempted if there are no supplementary group ids
- Minor cleanup in ProcessGroupManager::initialize()
Copy link
Contributor

@pawelrutkaq pawelrutkaq left a comment

Choose a reason for hiding this comment

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

This shall be synced with @PiotrKorkus hwoto approach tests. There are score tools for it. We shall make it consistent.

@NicolasFussberger
Copy link
Contributor

This shall be synced with @PiotrKorkus hwoto approach tests. There are score tools for it. We shall make it consistent.

I had a brief chat on slack with Piotr and as far as I understood there are 2 options in Score.
The framework from tooling repo which only allows local execution and the ITF framework which allows execution on qemu machine.

I believe, since the launch manager has some qnx-specific functionality (like e.g. security policies), that testing on QNX is a must -have. But always running tests in QEMU is also a pain, which slows down development.
So the idea was to have the best of both worlds, to allow just executing tests locally (on linux), but also allow to run the tests in qemu using ITF. So this PR adds a minimal abstraction that lets you start something locally or via ssh on qemu machine.

This is only the first step to get some basic smoke tests running. Maybe we can agree on a first solution just to get some integration tests working soon. I feel like there is no consistent solution in SCore at this point.

@pawelrutkaq
Copy link
Contributor

pawelrutkaq commented Feb 11, 2026

This shall be synced with @PiotrKorkus hwoto approach tests. There are score tools for it. We shall make it consistent.

I had a brief chat on slack with Piotr and as far as I understood there are 2 options in Score. The framework from tooling repo which only allows local execution and the ITF framework which allows execution on qemu machine.

I believe, since the launch manager has some qnx-specific functionality (like e.g. security policies), that testing on QNX is a must -have. But always running tests in QEMU is also a pain, which slows down development. So the idea was to have the best of both worlds, to allow just executing tests locally (on linux), but also allow to run the tests in qemu using ITF. So this PR adds a minimal abstraction that lets you start something locally or via ssh on qemu machine.

This is only the first step to get some basic smoke tests running. Maybe we can agree on a first solution just to get some integration tests working soon. I feel like there is no consistent solution in SCore at this point.

itf can run docker, I am bit wordied that not we doing simply third thing becasue its faster to do some few python code. I will talk to Piotr, but we shall still not merge it to main before release as first we need other fixes - i dont see this to hurry

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.

Local test execution

4 participants