Skip to content

feat(tc8): add ETS stub DUT and someipd logging migration - #242

Merged
lurtz merged 4 commits into
eclipse-score:mainfrom
etas-contrib:jorgecasal/tc8-ets-stub-dut
Aug 14, 2026
Merged

feat(tc8): add ETS stub DUT and someipd logging migration#242
lurtz merged 4 commits into
eclipse-score:mainfrom
etas-contrib:jorgecasal/tc8-ets-stub-dut

Conversation

@jorgecasal

@jorgecasal jorgecasal commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

This is PR 2 of 9 in the TC8 conformance test suite stack (split from #60).

Depends on: #213 (jorgecasal/tc8-build-infra), now merged into main.

Note: Replaces the previously proposed PR #214 (jorgecasal/tc8-someipd-standalone), which was closed. The score/someipd_tc8/ standalone binary approach was replaced by the ETS stub described below.

Changes

score/someipd/main.cpp: migrate logging from std::cout to score::mw::log. No logic change.

tests/tc8_conformance/application/ -- new ETS stub DUT:

  • shared/tc8_ets_service.h: service constants and event descriptors used by the stub
  • ets_stub/tc8_ets_stub.cpp: binary that offers tc8_service via mw::com GenericSkeleton and sends periodic event notifications for TC8 test capture
  • ets_stub/config/tc8_ets_stub_mw_com_config.json: mw::com manifest for the stub

The ETS stub is the DUT application for TC8 conformance testing. It offers tc8_service via mw::com GenericSkeleton. gatewayd and someipd still run in the test setup and bridge that service to the SOME/IP network so the TC8 ETS can connect to it. Compared to the previous approach (a standalone someipd_tc8 binary), the ETS stub sits at the application layer and has no direct dependency on vsomeip or the IPC bridge internals.

Stack

PR Branch Status
1 jorgecasal/tc8-build-infra merged
2 jorgecasal/tc8-ets-stub-dut this PR
3 jorgecasal/tc8-itf-migration pending
4 jorgecasal/tc8-infra pending
5 jorgecasal/tc8-sd-core pending
6 jorgecasal/tc8-sd-compliance pending
7 jorgecasal/tc8-msg-format pending
8 jorgecasal/tc8-event-field pending
9 jorgecasal/tc8-ci-docs pending

Review focus

  • tc8_ets_stub.cpp: does the mw::com GenericSkeleton offer/notify flow correctly implement the event patterns expected by TC8 tests?
  • tc8_ets_service.h: are the event descriptors and DataTypeMetaInfo correct?
  • tc8_ets_stub_mw_com_config.json: are service ID, instance ID, and event IDs consistent with the TC8 test configs?
  • score/someipd/main.cpp: logging migration only, verify no logic regression.

@jorgecasal jorgecasal self-assigned this Aug 13, 2026
@jorgecasal jorgecasal added the enhancement New feature or request label Aug 13, 2026
@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

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.6.0) and connecting to it...
INFO: Invocation ID: 4e2694b2-5cf4-4ec8-8350-3f2ec2287374
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Loading: 
Loading: 3 packages loaded
Loading: 3 packages loaded
    currently loading: 
Loading: 3 packages loaded
    currently loading: 
Loading: 3 packages loaded
    currently loading: 
Loading: 3 packages loaded
    currently loading: 
Loading: 3 packages loaded
    currently loading: 
WARNING: Target pattern parsing failed.
ERROR: Skipping '//:license-check': no such target '//:license-check': target 'license-check' not declared in package '' defined by /home/runner/work/inc_someip_gateway/inc_someip_gateway/BUILD
ERROR: no such target '//:license-check': target 'license-check' not declared in package '' defined by /home/runner/work/inc_someip_gateway/inc_someip_gateway/BUILD
INFO: Elapsed time: 13.645s
INFO: 0 processes.
ERROR: Build did NOT complete successfully
ERROR: Build failed. Not running target

@github-actions

Copy link
Copy Markdown
Contributor

Documentation preview for this pull request is available at:
pr-242: https://eclipse-score.github.io/inc_someip_gateway/pr-242/

}
score::mw::log::LogDebug() << "[tc8_ets_stub] notified all events";
}
std::this_thread::sleep_for(std::chrono::milliseconds(100));

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.

I still believe the chosen approach will drift over time. We just have to make the conscious decision if that is ok.

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.

This loop already uses steady_clock to avoid accumulated drift (unlike the elapsed_ms counter pattern in the closed PR #214). The residual ~100 ms jitter per notification cycle is the polling granularity, not drift, and from my point of view acceptable for a test helper whose only job is to drive SOME/IP event traffic for protocol capture. If that is acceptable for you, I'd keep as is.

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.

drift is for me acceptable. I just wanted to point out that this can happen with this algorithm.

It is not like that almost exactly every 500ms an event will be sent and if the second was delayed and sent at 590ms, that the third will be sent at 1000ms. Instead subsequent events will inherit the delay from the predecessors. Thus when everything works in time the third event will be sent at 1090ms. If the scheduler decides to wake up this application even later, it could be later.

Admitted this should not be an issue when the system is almost idle, but under high load we might experience this.


## See Also

- [Architecture](../../../docs/architecture/tc8_conformance_testing.rst)

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.

The target does not exist

@jorgecasal jorgecasal Aug 13, 2026

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.

You are correct, docs/architecture/tc8_conformance_testing.rst does not exist on this branch yet. It is part of the docs PR-9. Removed the dead link from this PR.

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.

I can accept that, but I am not happy with this approach. I would have loved that each pull request just contains as much documentation to make sense of it on its own.

Comment thread tests/tc8_conformance/application/README.md Outdated
Comment thread tests/tc8_conformance/application/README.md

@lurtz lurtz left a comment

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.

should we merge or wait for others review?

@lurtz
lurtz added this pull request to the merge queue Aug 14, 2026
Merged via the queue into eclipse-score:main with commit e104af4 Aug 14, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants