This commit is contained in:
deeaitch committed 2026-10-23 20:48:21 -04:00
1 parent e44529007a
commit f60faea2e7
35 files changed
+2361 -2145

No files matched your search

+19
View File
@@ -295,6 +295,25 @@ 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.
## Long signal definitions
`longSignalDefinitions` reproduces the former stack overflow with a 50,000-character
unit string. Both parser APIs are exercised with long units, signal names,
receivers, decimal numbers, and a list of 10,001 receivers. Valid input must parse
without truncating units; malformed input (including missing quotes, delimiters,
receiver separators, numeric suffixes, overflow, and trailing receiver commas)
must return an empty database and an `InvalidStatement` diagnostic at the signal's
source line, or throw a source-located error through `ParseFile()`.
These cases run as part of the existing parser target and sanitizer builds.
Verified with Qt 6.8.2 in separate Release and ASan/UBSan builds, both with
`CONFIG+=dbc_qt`: `make check` passed 2,409 core QtTest checks, seven model checks,
and the qmake tree test in each build. The named comma-decimal C locale test
skipped because the required locale is not installed. The sanitizer run used
`ASAN_OPTIONS=detect_leaks=0:halt_on_error=1` and `UBSAN_OPTIONS=halt_on_error=1`;
address and undefined-behavior checks passed, while leak checking was disabled
because of the environment's previously documented ptrace restriction.
## Extended validation
`attributeNumbers` checks signed 64-bit limits, leading plus signs, decimal HEX