Implementation & Test Code

Need: (CODE) Implementation follows requirement IDs and architecture specifications. CODE_IMPL_001 _images/arrow-right-circle.svg
status: active
tags: implementation, code, traceability

The Rust implementation captures traceability via doc comments and stable public APIs.

Need: (TEST) Test suite provides coverage of requirements. TEST_CODE_001 _images/arrow-right-circle.svg
status: active
tags: verification, testing, code

The native test runner writes test_results.xml in JUnit format and maps to the TEST_* needs.

Need: (CODE) Complete example includes both documentation and implementation. CODE_REPO_001 _images/arrow-right-circle.svg
status: active
tags: repository, structure

This example keeps documentation (*.rst) next to the Rust source and test artifacts for end-to-end traceability.

Code Organization

This TSIM implementation is written in Rust and keeps the same requirement IDs as the reference example.

examples/rust_hello_world/
├── Cargo.toml
├── src/
│   ├── lib.rs               # Implementation with requirement IDs in doc comments
│   └── bin/
│       └── junit_tests.rs   # Native test runner writing JUnit XML
├── test_results.xml         # Generated by ./build-and-test.sh
└── build-and-test.sh

Traceability in Rust Code

In Rust projects, requirement traceability is typically captured via:

  • module-level doc comments (//! REQ_*)

  • function-level doc comments (/// REQ_*)

  • explicit mapping tables in the documentation

The public API in src/lib.rs maps directly to:

Building & Running Tests

cd examples/rust_hello_world

cargo build
cargo run --bin junit_tests -- test_results.xml

Then build the documentation (imports test_results.xml):

osqar build-docs --project examples/rust_hello_world