Requirements Traceability

Test case → requirement mapping

ID

Title

Suite

Status

Depends On

Verifies

TC_SAFE_DATA_COMMIT_RESEALS_EXTERNAL_WRITE

commit reseals external write

safe_data

active

CONFIG_SAFE_DATA_ALLOW_UNCHECKED_COMMIT

TC_SAFE_DATA_CONCURRENT_ACCESS_IS_SERIALISED

concurrent access is serialised

safe_data

active

TC_SAFE_DATA_DETECTS_CORRUPTION

detects corruption

safe_data

active

TC_SAFE_DATA_DOUBLE_FAULT_UNRECOVERABLE

double fault unrecoverable

safe_data

active

CONFIG_SAFE_DATA_REDUNDANT

TC_SAFE_DATA_FAULT_HANDLER_EVENTS

fault handler events

safe_data

active

TC_SAFE_DATA_FAULT_REACTION

fault reaction

safe_data_fault

active

TC_SAFE_DATA_INIT_AND_VERIFY

init and verify

safe_data

active

TC_SAFE_DATA_LOCK_FROM_ISR_ASSERTS

lock from isr asserts

safe_data_fault

active

CONFIG_ASSERT

TC_SAFE_DATA_LOCK_TIMEOUT_IS_BOUNDED_AND_REPORTED

lock timeout is bounded and reported

safe_data

active

CONFIG_SAFE_DATA_LOCK_TIMEOUT_MS > 0; CONFIG_SAFE_DATA_LOCKING

TC_SAFE_DATA_NULL_ARGS

null args

safe_data

active

TC_SAFE_DATA_READ_ROUNDTRIP

read roundtrip

safe_data

active

TC_SAFE_DATA_REDUCED_API_SURFACE

reduced api surface

safe_data

active

TC_SAFE_DATA_SECTION_SCOPE

section scope

safe_data

active

CONFIG_SAFE_DATA_GNU_EXTENSIONS

TC_SAFE_DATA_SELFTEST

selftest

safe_data

active

CONFIG_SAFE_DATA_SELFTEST

TC_SAFE_DATA_STALE_TAG_RECOVERS

stale tag recovers

safe_data

draft

CONFIG_SAFE_DATA_REDUNDANT

TC_SAFE_DATA_STATS_COUNT_EVENTS

stats count events

safe_data

active

CONFIG_SAFE_DATA_STATS

TC_SAFE_DATA_UPDATE_ABORT_KEEPS_INTEGRITY

update abort keeps integrity

safe_data

active

TC_SAFE_DATA_UPDATE_CLAMPS_POSITIVE_MUTATOR_RETURN

update clamps positive mutator return

safe_data

active

TC_SAFE_DATA_UPDATE_COMMITS

update commits

safe_data

active

TC_SAFE_DATA_VERIFY_REPAIR_FIXES_IN_PLACE

verify repair fixes in place

safe_data

active

CONFIG_SAFE_DATA_REDUNDANT

TC_SAFE_DATA_WRITE_OBSERVES_OVERWRITTEN_CORRUPTION

write observes overwritten corruption

safe_data

active

CONFIG_SAFE_DATA_WRITE_CHECKS_OLD; CONFIG_SAFE_DATA_STATS

TC_SAFE_DATA_WRITE_RESEALS

write reseals

safe_data

obsolete

Covered requirements

Requirements with at least one test case linked to them.

ID

Title

Verifies Back

Sealing on initialisation

TC_SAFE_DATA_INIT_AND_VERIFY

Argument validation

TC_SAFE_DATA_NULL_ARGS

Pure verification

TC_SAFE_DATA_DETECTS_CORRUPTION; TC_SAFE_DATA_INIT_AND_VERIFY

In-place repair under mutual exclusion

TC_SAFE_DATA_VERIFY_REPAIR_FIXES_IN_PLACE

Validated read

TC_SAFE_DATA_READ_ROUNDTRIP

Atomic sealed write

TC_SAFE_DATA_READ_ROUNDTRIP; TC_SAFE_DATA_WRITE_RESEALS

Transactional read-modify-write

TC_SAFE_DATA_UPDATE_ABORT_KEEPS_INTEGRITY; TC_SAFE_DATA_UPDATE_COMMITS

Mutator contract enforcement

TC_SAFE_DATA_UPDATE_CLAMPS_POSITIVE_MUTATOR_RETURN

Single-copy fault recovery

TC_SAFE_DATA_DETECTS_CORRUPTION; TC_SAFE_DATA_STALE_TAG_RECOVERS; TC_SAFE_DATA_VERIFY_REPAIR_FIXES_IN_PLACE

Double-fault detection

TC_SAFE_DATA_DOUBLE_FAULT_UNRECOVERABLE

Configurable unrecoverable-fault reaction

TC_SAFE_DATA_FAULT_HANDLER_EVENTS; TC_SAFE_DATA_FAULT_REACTION

Integrity-event statistics

TC_SAFE_DATA_STATS_COUNT_EVENTS

Fault-handler registration and event reporting

TC_SAFE_DATA_FAULT_HANDLER_EVENTS

Bounded lock acquisition

TC_SAFE_DATA_LOCK_TIMEOUT_IS_BOUNDED_AND_REPORTED

No ISR-context locking

TC_SAFE_DATA_LOCK_FROM_ISR_ASSERTS

Serialised access — no torn snapshots

TC_SAFE_DATA_CONCURRENT_ACCESS_IS_SERIALISED

Integrity-mechanism self-test

TC_SAFE_DATA_SELFTEST

Write may not silently mask corruption

TC_SAFE_DATA_WRITE_OBSERVES_OVERWRITTEN_CORRUPTION

Reduced API surface at the Strict level

TC_SAFE_DATA_REDUCED_API_SURFACE

Scoped access block

TC_SAFE_DATA_SECTION_SCOPE

Unchecked commit

TC_SAFE_DATA_COMMIT_RESEALS_EXTERNAL_WRITE

Coverage gaps

Requirements not yet covered by any test case.

ID

Title

Compile-time payload guards

Implementation → requirement

API symbols (impl needs from the API Traceability) and the requirements they satisfy (@satisfies in include/safe_data/safe_data.h). A requirement that constrains the whole API (argument validation, fault reaction, bounded locking, the ISR check, serialised access, the reduced API surface) is traced to each public symbol that contains the behaviour:

ID

Title

Depends On

Satisfies

SAFE_COMMIT

defined(CONFIG_SAFE_DATA_ALLOW_UNCHECKED_COMMIT)

SAFE_CONTAINER_DEFINE

safe_data_commit

defined(CONFIG_SAFE_DATA_ALLOW_UNCHECKED_COMMIT)

safe_data_fault_handler

safe_data_fault_handler_register

safe_data_init

safe_data_read

safe_data_selftest

defined(CONFIG_SAFE_DATA_SELFTEST)

safe_data_stats_get

safe_data_update

safe_data_verify

safe_data_verify_repair

safe_data_write

SAFE_SECTION

defined(CONFIG_SAFE_DATA_GNU_EXTENSIONS)

Requirements satisfied by an API symbol:

ID

Title

Satisfies Back

Sealing on initialisation

Argument validation

Pure verification

In-place repair under mutual exclusion

Validated read

Atomic sealed write

Transactional read-modify-write

Mutator contract enforcement

Single-copy fault recovery

Double-fault detection

Configurable unrecoverable-fault reaction

Integrity-event statistics

Fault-handler registration and event reporting

Bounded lock acquisition

No ISR-context locking

Serialised access — no torn snapshots

Integrity-mechanism self-test

Write may not silently mask corruption

Compile-time payload guards

Reduced API surface at the Strict level

Scoped access block

Unchecked commit

Requirements that no API symbol satisfies:

No needs passed the filters