This commit is contained in:
deeaitch committed 2026-10-20 13:21:43 -04:00
1 parent e555ebb571
commit 849ce31e2f
17 files changed
+675 -35

No files matched your search

+18 -1
View File
@@ -66,7 +66,7 @@ line numbers for skipped syntax and immediate/deferred errors; warnings precedin
an error are retained, and failed parses return an empty database. Common headers
and namespace symbol lists stay quiet. Tests also check file-open errors, fresh
parse sessions, and compatibility with the legacy throwing API.
The diagnostic audit also covers 15 unsupported-statement variants, all namespace
The diagnostic audit also covers 13 unsupported-statement variants, all namespace
termination forms, CRLF and missing final newlines, relative paths with spaces,
first-error stopping, deferred diagnostic ordering, duplicate definitions/values,
selector ranges, overlaps, and preservation of supported decoding and metadata.
@@ -220,3 +220,20 @@ Empty and headers-only fixtures produce an empty runtime database and a valid
empty tree root. Replacement fixtures change definitions, metadata and decoded
values, remove old lookup keys, and then clear both outputs through an empty
fixture. Saved decoded results and trees retain their original metadata.
## Attribute coverage
Parser slots `attributes`, `invalidAttributes`, and `attributeWarnings` cover
all five scopes and types, deferred definitions/defaults/targets, explicit
values overriding defaults, repeated assignments, escaped strings, typed
range/scope errors, duplicate definitions/defaults, unknown attributes and
missing targets. They check source diagnostics and the throwing API, distinct
standard/extended targets, frame cycle times and enum labels, unsupported
formats and ID conflicts, unchanged J1939 opt-in, and runtime/tree propagation.
Existing unsupported-statement checks now use relation forms, which remain
unsupported, instead of supported attribute forms.
Attribute changes were verified with `qmake6 ../dbc.pro`, `make -j4`, and
`make check` in `build/`: all six QtTest suites and the qmake tree target
passed. The standalone C++17 tree test also passed. The existing named
comma-decimal C locale test skipped because the locale is not installed.