Skip to content

test: improve generic skeleton interaction tests for CI stability#513

Open
ShoroukRamzy wants to merge 1 commit into
eclipse-score:mainfrom
Valeo-S-CORE-Organization:generic-skeleton-test-improvement
Open

test: improve generic skeleton interaction tests for CI stability#513
ShoroukRamzy wants to merge 1 commit into
eclipse-score:mainfrom
Valeo-S-CORE-Organization:generic-skeleton-test-improvement

Conversation

@ShoroukRamzy

Copy link
Copy Markdown
Contributor

Objective: Improve the stability and reliability of the generic_skeleton integration tests in CI environments.

Changes:

  • Test Flow Redesign: The provider now loops infinitely (handling SIGTERM via stop_token for graceful shutdown) while the consumer strictly verifies 30 consecutive samples starting from the first one it successfully receives.

  • Orchestration: The Python test runner now waits purely for the consumer to succeed and exit, and then cleanly terminates the provider. This completely eliminates random test hangs/failures caused by thread scheduling delays on GitHub Actions.

  • XFAIL: All tests are currently marked as "expected to fail" (xfail) to prevent CI blockage. They successfully run but correctly catch a known Generic Skeleton base pointer / memory alignment bug. Once the underlying C++ bug is fixed in a subsequent PR, the xfail markers will be removed in a follow-up PR

@ShoroukRamzy

Copy link
Copy Markdown
Contributor Author

Hi @crimson11, Could you please have a look when you have time? Thanks!

- Marked all integration tests with @pytest.mark.xfail due to a known Generic Skeleton memory alignment/base pointer bug. This allows the CI to pass until the underlying fix is implemented in a follow-up PR.
std::cout << "[PROVIDER] Finished initial 5s sleep." << std::endl;

for (int i = 0; i < kSamplesToProcess; ++i)
uint64_t i = 0;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

For future: Please use std::uint64_t

mode = argv[++i];
score::mw::com::runtime::InitializeRuntime(score::mw::com::runtime::RuntimeConfiguration(argc, argv));

score::cpp::stop_source stop_source;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

For future, please always use {}-Initalization

@castler

castler commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

@ShoroukRamzy can you maybe fix the suggestions as you have to rebase because of a merge conflict anyhow?

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

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

3 participants