This commit is contained in:
deeaitch committed 2026-10-20 13:38:21 -04:00
1 parent 849ce31e2f
commit a55d1c58ed
272 files changed
+41866 -261

No files matched your search

+31
View File
@@ -237,3 +237,34 @@ 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.
## Extended validation
`attributeNumbers` checks signed 64-bit limits, leading plus signs, decimal HEX
values, FLOAT fractions/exponents, and default overrides under a comma-decimal
C++ locale. Node/environment defaults remain on definitions without becoming
database attributes. `invalidAttributeNumbers` supplies 39 data rows, each checked
in both definition bounds, a default, and an explicit assignment. The throwing
and diagnostic APIs must reject malformed signs, trailing text, hexadecimal
notation, non-finite values, overflow, and underflow with the correct error line.
Additional malformed-attribute cases cover token separators, scope/type names,
reversed FLOAT bounds, value types/ranges, and invalid CAN references.
Run AddressSanitizer and UndefinedBehaviorSanitizer in a separate directory:
```sh
mkdir -p build-sanitize
cd build-sanitize
qmake6 ../dbc.pro CONFIG+=dbc_qt CONFIG+=debug CONFIG-=release \
'QMAKE_CXXFLAGS+=-fsanitize=address,undefined -fno-omit-frame-pointer' \
'QMAKE_LFLAGS+=-fsanitize=address,undefined'
make -j4
ASAN_OPTIONS=detect_leaks=0 UBSAN_OPTIONS=halt_on_error=1 \
QT_FATAL_WARNINGS=1 LOCPATH=/tmp/dbc-test-locales make check
```
Generate the optional German locale as described above before setting LOCPATH.
LeakSanitizer cannot run under this environment's tracer: `detect_leaks=1`
completes the core QtTest suites but fails during leak checking with the message
that LeakSanitizer does not work under ptrace. Disabling leak checking retains
AddressSanitizer and UndefinedBehaviorSanitizer checks; it does not verify leaks.