Closes #32
This commit is contained in:
1 parent
e44529007a
commit
f60faea2e7
35 files changed
+2361
-2145
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user