Closes #16
This commit is contained in:
1 parent
7022c84941
commit
c3d3bd51fb
72 files changed
+3703
-2484
No files matched your search
@@ -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>
|
||||
|
||||
Reference in new issue
Block a user