This commit is contained in:
deeaitch committed 2026-10-13 08:17:49 -04:00
1 parent 7022c84941
commit c3d3bd51fb
72 files changed
+3703 -2484

No files matched your search

+5
View File
@@ -101,6 +101,8 @@ Unreleased</h1>
<h3><a class="anchor" id="autotoc_md3"></a>
Added</h3>
<ul>
<li>Issue #16: construction-time validation for both manual runtime definitions and <code><a class="el" href="classDbcDecodeBuilder.html" title="Converts parsed DBC data into runtime decode database.">DbcDecodeBuilder</a></code> input: normalized CAN IDs, duplicate keys, signal lengths and positions, enums, finite numeric parameters, ordered ranges, selectors, branch ranges, and overlaps.</li>
<li>Regression tests for both construction paths, numeric and bit boundaries, mixed byte orders, exclusive overlaps, mutable input aliases, and failed reloads.</li>
<li><code>FrameDecodeStatus</code> distinguishes unknown frames, insufficient payloads, signal errors, and successful decoding; frame <code>valid</code> still means matched.</li>
<li><code>SignalDecodeStatus::PhysicalConversionFailed</code> reports NaN/Inf results, retaining exact raw values and the non-finite physical result.</li>
<li>Regression tests for payload-length policy, partial results, invalid runtime metadata, physical overflow/non-finite parameters, and raw branch selection when selector physical conversion fails.</li>
@@ -108,6 +110,9 @@ Added</h3>
<h3><a class="anchor" id="autotoc_md4"></a>
Changed</h3>
<ul>
<li>Runtime construction rejects invalid definitions with <code>std::invalid_argument</code> before publishing a snapshot. Decoder tests now expect construction failures for malformed definitions; finite arithmetic overflow remains a decode status.</li>
<li>Shared overflow-safe layout validation across parsing, construction, and decoding. Intel extraction also widens bit coordinates before arithmetic.</li>
<li><code><a class="el" href="classDecodeDatabase.html" title="Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles a...">DecodeDatabase</a></code> now accepts definitions by const reference and copies them, even for rvalues, preventing retained mutable aliases from modifying the frozen snapshot or invalidating its index.</li>
<li>Short payloads decode available signals without padding; longer payloads ignore bytes beyond the declared DLC. Short frame status takes precedence over signal errors, with per-signal causes retained in definition order.</li>
<li>Runtime signal validation checks enum values and bit layouts against declared DLC using overflow-safe coordinates. Extra bytes cannot rescue invalid layouts.</li>
<li>Documented frame/signal status meanings, value availability, and payload policy.</li>