Skip to content

Conversation

@pawelrutkaq
Copy link
Contributor

@pawelrutkaq pawelrutkaq commented Sep 16, 2025

Features:

Bugfixing:

  • multiple minor bugfixes along with components test coverage

Notes for Reviewer

Pre-Review Checklist for the PR Author

  • PR title is short, expressive and meaningful
  • Commits are properly organized
  • Relevant issues are linked in the References section
  • Tests are conducted
  • Unit tests are added

Checklist for the PR Reviewer

  • Commits are properly organized and messages are according to the guideline
  • Unit tests have been written for new behavior
  • Public API is documented
  • PR title describes the changes

Post-review Checklist for the PR Author

  • All open points are addressed and tracked via issues

References

Closes #29

pawelrutkaq and others added 30 commits September 16, 2025 08:37
Base code for mio that requires further refactor and rework.
Implemented the POSIX poll IoSelector compatible with Unix and QNX system.
Test relies on timeout, which was too small for slower machines.
Condition variable based implementation.
Track and use the same .gitlint settings as in score repo.

Signed-off-by: Nicolae Dicu <nicolae.dicu.ext@qorix.ai>
Doubled default timeout of 300s.
* Add check for expected command failure
* Set capture_stderr as a property
This PR brings basic infrastructure to use MIO
in runtime to provide async support for IO operations.
There are few main building blocks
 - IoDriver - reposible for handling MIO selector
and providing a core to register IO intents that shall
be waken once MIO notifies something is ready
 - AsyncRegistration - let register wakers for different
  EventIntrests and make sure all waiting async tasks are
  awaken once MIO detects event on them
 - BridgedFd - wraps AsyncRegistration and allow to use
 regular IO objects in async way

Signed-off-by: Pawel Rutka <pawel.rutka.ext@qorix.ai>
Signed-off-by: Pawel Rutka <pawel.rutka.ext@qorix.ai>
Signed-off-by: Pawel Rutka <pawel.rutka.ext@qorix.ai>
Test checking if proper affinity of threads is set.
Match crate features with Cargo.toml defaults
Coverage for all run interfaces - regular and metered.
- make IO being check while tasks are processed
- Now worker first choice for parking is IO driver.
This mean that some worker will park on IO driver and will
wait for events from IO. From now on, AsyncRegistration and
BridgedFd are fully functionall and can be used to implement
working async IOs

Signed-off-by: Pawel Rutka <pawel.rutka.ext@qorix.ai>
Signed-off-by: Pawel Rutka <pawel.rutka.ext@qorix.ai>
- Bump version in 'requirements.txt'.
- Use 'get_logs'.
- Restore 'capture_stderr' method.
- Add fail check to 'CitScenario'.
Due to atomic being modified outside lock when
we modify for release condition, it could happen
that waiting thread may miss notification and hangs

Signed-off-by: Pawel Rutka <pawel.rutka.ext@qorix.ai>
Execution timings differ in CICD too much to define thresholds.
- Provide UdpSocket as async IO
- Provide both TcpListener and TcpStrem as async IO

Signed-off-by: Pawel Rutka <pawel.rutka.ext@qorix.ai>
time constrain tests are not reliable in current form
Wrap in single quotes command token if it has a space inside
Single producer multiple consumers broadcast channel tests
Rust scenarios for channels splitted to different files
Includes reorg of `channel` module - to prevent files of the same name
as module.
Set debug backtrace for rust scenarios. Bazel specific run instructions for failed tests.
Replace `unwrap` with `expect` containing description.
Signed-off-by: Pawel Rutka <pawel.rutka.ext@qorix.ai>
Prabakaran Chinnasamy and others added 6 commits September 16, 2025 08:37
Updated source files, script and document to build for QNX target using cargo.
Bazel build is not yet supported.
Limited spmc channel max receivers to `u16` from `usize` as it is more than enough and to avoid runtime failures.
New script should be used for bugs for consistent test setup
- Test checking if proper priority of threads is set.
- Add `root_required` marker.
- Add hook for checking root permissions.
  - Allow prompt for `pytest`.
  - Check permissions are available or skip tests for `bazel`.
Added a basic implementation of the async select macro.
No conditionals or a default case for now.
@github-actions
Copy link

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 and connecting to it...
INFO: Invocation ID: b2a79a74-cb0a-4079-b907-602173ed7d8f
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
WARNING: For repository 'rules_python', the root module requires module version rules_python@1.0.0, but got rules_python@1.4.1 in the resolved dependency graph.
WARNING: For repository 'googletest', the root module requires module version googletest@1.14.0, but got googletest@1.14.0.bcr.1 in the resolved dependency graph.
WARNING: For repository 'aspect_rules_lint', the root module requires module version aspect_rules_lint@1.0.3, but got aspect_rules_lint@1.4.2 in the resolved dependency graph.
Computing main repo mapping: 
Loading: 
Loading: 0 packages loaded
Loading: 0 packages loaded
    currently loading: 
Loading: 0 packages loaded
    currently loading: 
Analyzing: target //:license-check (1 packages loaded, 0 targets configured)
Analyzing: target //:license-check (1 packages loaded, 0 targets configured)

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

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

Analyzing: target //:license-check (156 packages loaded, 961 targets configured)

Analyzing: target //:license-check (159 packages loaded, 2224 targets configured)

Analyzing: target //:license-check (164 packages loaded, 2780 targets configured)

Analyzing: target //:license-check (164 packages loaded, 2780 targets configured)

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

Analyzing: target //:license-check (169 packages loaded, 5030 targets configured)

Analyzing: target //:license-check (169 packages loaded, 5030 targets configured)

INFO: Analyzed target //:license-check (170 packages loaded, 6949 targets configured).
[8 / 14] Creating runfiles tree bazel-out/k8-opt-exec-ST-d57f47055a04/bin/external/score_dash_license_checker~/tool/formatters/dash_format_converter.runfiles [for tool]; 0s local ... (2 actions running)
INFO: From Generating Dash formatted dependency file ...:
INFO: Successfully converted 204 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: 187.549s, Critical Path: 0.81s
INFO: 14 processes: 3 disk cache hit, 9 internal, 2 processwrapper-sandbox.
INFO: Build completed successfully, 14 total actions
INFO: Running command line: bazel-bin/license.check.license_check ./formatted.txt -review -project automotive.score -repo https://github.com/eclipse-score/inc_orchestrator -token
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>]

Copy link
Contributor

@PiotrKorkus PiotrKorkus left a comment

Choose a reason for hiding this comment

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

testing ok

@vinodreddy-g
Copy link
Contributor

LGTM

@vinodreddy-g vinodreddy-g merged commit 4889717 into eclipse-score:main Sep 17, 2025
11 checks passed
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.

Runtime: Provide IO multiplexer

9 participants