Skip to content

analysis/tracing: add canary requirement and test links - #581

Closed
Nikhil2206 wants to merge 11 commits into
eclipse-score:mainfrom
Nikhil2206:nk-analysis-tracing-test-req-trace
Closed

Nikhil2206 wants to merge 11 commits into
eclipse-score:mainfrom
Nikhil2206:nk-analysis-tracing-test-req-trace

Conversation

@Nikhil2206

@Nikhil2206 Nikhil2206 commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

#554
Author the missing analysis/tracing component requirement and link all 24 canary wrapper tests to it.

The requirement covers canary-protected data integrity: wrapping arbitrary data with configurable canaries, detecting corruption at either boundary, and reporting corrupted data as unavailable.

Changes

  • Added comp_req__analysis_tracing__canary_protected_data_integrity.
  • Added the analysis/tracing documentation bundle and root component wiring.
  • Added required RecordProperty metadata to all 24 canary wrapper tests.
  • Covered nominal construction/access, 32-bit and 64-bit canaries, layout, copy/move state propagation, and injected start/end/both-canary corruption.

Traceability

All tests use PartiallyVerifies, Description, TestType, and DerivationTechnique. Deliberately corrupted canary tests use fault-injection; boundary-validity cases use boundary-values.

The requirement derives from feat_req__com__data_corruption[version==1], which requires protection against corruption of data consumed by higher-criticality partners.

@github-project-automation github-project-automation Bot moved this to In Progress in BAS - Baselibs FT Sep 11, 2026
@github-actions github-actions Bot added documentation Improvements or additions to documentation comp-tracing Related to score/analysis c++ C++ code bazel Bazel and Starlark build files labels Sep 11, 2026
@Nikhil2206 Nikhil2206 closed this Sep 11, 2026
@github-project-automation github-project-automation Bot moved this from In Progress to Done in BAS - Baselibs FT Sep 11, 2026
@Nikhil2206 Nikhil2206 reopened this Sep 11, 2026
@Nikhil2206 Nikhil2206 closed this Sep 11, 2026
@Nikhil2206 Nikhil2206 reopened this Sep 11, 2026
Remove the newly authored comp_req__analysis_tracing__canary_integrity
and its requirements/index.rst; this PR should not introduce a new
component requirement. Keep the architecture doc and docs bundle
wiring in place, and leave the tests' RecordProperty traceability
metadata (including the PartiallyVerifies reference) untouched for a
future PR to properly connect once the requirement is authored.
@Nikhil2206
Nikhil2206 marked this pull request as ready for review September 25, 2026 08:26
Add score/analysis:docs bundle (mount_at baselibs/components/analysis)
so score/analysis/tracing:docs has a valid attach point, matching the
score/language parent/child mount pattern. This fixes the docs-verify
CI failure (mounts.attach_to_missing / toc.not_included).

Restore comp_req__analysis_tracing__canary_integrity and its
requirements/index.rst, which a prior commit deleted while leaving all
24 canary_wrapper_test.cpp PartiallyVerifies links pointing at it. Per
the requirements-management skill, linked tests must point at an
existing comp_req.
@Nikhil2206
Nikhil2206 deployed to workflow-approval September 28, 2026 06:25 — with GitHub Actions Active
@Nikhil2206
Nikhil2206 deployed to workflow-approval September 28, 2026 06:25 — with GitHub Actions Active
@Nikhil2206
Nikhil2206 deployed to workflow-approval September 28, 2026 06:25 — with GitHub Actions Active
@Nikhil2206
Nikhil2206 deployed to workflow-approval September 28, 2026 06:25 — with GitHub Actions Active
@github-actions

Copy link
Copy Markdown
Contributor

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

Copilot AI 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.

Copilot review overview

🟡 Changes recommended

The normative requirement overstates configurability, and the PR’s requirement ID, metadata claims, and linked issue are inconsistent with the changes.

Review effort: Balanced
Findings: 1 Medium severity · 3 Low severity

Open (4)
What changed in this PR

Adds requirements traceability and documentation integration for the Analysis Tracing canary wrapper.

Changes:

  • Defines the canary-integrity component requirement and architecture.
  • Links 24 canary tests with verification metadata.
  • Wires Analysis Tracing documentation into the root bundle.
File Description
score/​analysis/​tracing/​docs/​requirements/​index.rst Defines the canary requirement.
score/​analysis/​tracing/​docs/​index.rst Adds the component documentation entry point.
score/​analysis/​tracing/​docs/​architecture/​index.rst Defines the architecture component.
score/​analysis/​tracing/​common/​canary_wrapper/​test/​canary_wrapper_test.cpp Adds requirement metadata to 24 tests.
score/​analysis/​tracing/​BUILD Creates the tracing documentation bundle.
score/​analysis/​docs/​index.rst Adds the analysis documentation root.
score/​analysis/​BUILD Creates the analysis documentation bundle.
docs/​baselibs/​components/​index.rst Lists Analysis Tracing in the component overview.
BUILD Mounts the new documentation bundles.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

:tags: inspected
:satisfied_by: comp__baselibs_analysis_tracing[version==1]

The Analysis Tracing component shall wrap arbitrary data with configurable start and end canary values, detect corruption of either canary during data access, and report corrupted data as unavailable.
Comment thread BUILD
Comment on lines +91 to +92
"bundle": "//score/analysis:docs",
"mount_at": "baselibs/components/analysis",
RecordProperty("Description",
"Check that corrupting only the start canary is rejected while the end canary remains valid.");
RecordProperty("TestType", "fault-injection");
RecordProperty("DerivationTechnique", "equivalence-classes");
=======================

.. comp_req:: Canary-Protected Data Integrity
:id: comp_req__analysis_tracing__canary_integrity
:reqtype: Functional
:security: YES
:safety: ASIL_B
:derived_from: feat_req__com__data_corruption[version==1]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Introducing a component requirement for analysis/tracing is fine, but it's not fine to link to some feature requirement of communication. I think we should introduce a proper feature requirement in baselibs.
@hoppe-and-dreams, what's your opinion?

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.

Yes, the Tracing topic is a bit scattered (it has parts in baselibs, parts in com and parts in logging). But since we defined clear APIs/work splits the requriments should also be split along those lines.

Looping in @andreapefe what's the status of bringing the tracing requirements?

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.

Bringing the full tracing requirements into SCORE has been postponed until Jan 2027.
We could think of bringing in the baselibs subset which only concerns the public API earlier if necessary.
In any case, the requirements here are not really matching my expectation in terms of content.

@4og and @Nikhil2206 we can sync on what exactly you need when and see what we can provide, then create a specific task out of it.

- Narrow the canary requirement wording to the supported 32-bit/64-bit
  widths instead of claiming configurable canary values (values are
  fixed private constants in canary_wrapper.h).
- Correct DerivationTechnique to boundary-values for the three
  boundary-validity tests (single-canary and both-canary edge cases).
- Remove :tags: inspected per review request.
@anmittag

Copy link
Copy Markdown
Member

@Nikhil2206 please check the review findings

@Nikhil2206

Copy link
Copy Markdown
Contributor Author

Closing per discussion with @anmittag and @andreapf853 — the canary wrapper isn't part of the public interface anymore and is slated for removal, so a standalone requirement for it isn't the right path forward. Proper feature + component requirements for analysis/tracing (treating the baselibs portion as a single component, modeled on mw/log's requirements) will be authored separately, targeting end of November for S-CORE 1.0. Happy to pick this back up once that structure lands.

This branch is waiting to be deployed

1 waiting deployment
workflow-approval — 4c10ecbb Waiting Sep 30, 2026 by Nikhil2206 via Build and Test aarch64-qnx (examples/integration) / approval #2164
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bazel Bazel and Starlark build files c++ C++ code comp-tracing Related to score/analysis documentation Improvements or additions to documentation

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

6 participants