This commit is contained in:
deeaitch committed 2026-10-23 20:53:05 -04:00
1 parent f60faea2e7
commit f03882d3f4
86 files changed
+3539 -2688

No files matched your search

+25 -1
View File
@@ -99,7 +99,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 13 unsupported-statement variants, all namespace
The diagnostic audit also covers 11 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.
@@ -295,6 +295,30 @@ Attribute changes were verified with `qmake6 ../dbc.pro`, `make -j4`, and
passed. The standalone C++17 tree test also passed. The existing named
comma-decimal C locale test skipped because the locale is not installed.
## Unsupported signal value types
`unsupportedSignalValueTypes` verifies that both parser APIs reject `SIG_VALTYPE_`
declarations with `UnsupportedSignalType`, the original file path and physical
line, and an empty database. Cases include float32/float64, declarations before
signal definitions, extended IDs, tabs/CRLF, no final newline, type 0, unknown
types, and malformed declarations. Prior warnings are retained; `SIG_VALTYPE_`
symbols inside `NS_` lists remain quiet.
The pipeline suite checks the IEEE 754 bytes for float32 and float64 `1.0`.
Adding a type declaration must prevent publication of an integer definition,
so building from the error result cannot produce a valid decoded signal. The
same payloads still decode to exact integers when defined only by supported
`SG_` statements. New cases are included in the existing qmake targets.
Verified with Qt 6.8.2 in separate Release and ASan/UBSan builds with
`CONFIG+=dbc_qt`: each passed 2,420 core QtTest checks, seven model checks, and
the qmake tree test. One named-locale case skipped because its locale is
unavailable. ASan/UBSan used fatal errors and `detect_leaks=0` because of the
previously documented ptrace restriction. The separately built demo was checked
with float32 and float64 declarations (exit 2, source-located error, no decode
output), a supported integer definition (exit 0), and an unknown extension
(exit 0 with a visible warning).
## Long signal definitions
`longSignalDefinitions` reproduces the former stack overflow with a 50,000-character