28 lines
919 B
Markdown
28 lines
919 B
Markdown
# Decoder regression tests
|
|
|
|
Run from the repository root with a C++17 compiler:
|
|
|
|
```sh
|
|
g++ -std=c++17 -Wall -Wextra -Wpedantic -I. \
|
|
tests/dbc_decoder_test.cpp dbc_decoder.cpp -o /tmp/dbc_decoder_test
|
|
/tmp/dbc_decoder_test
|
|
```
|
|
|
|
Alternatively, build the standalone qmake project out of source:
|
|
|
|
```sh
|
|
mkdir -p /tmp/dbc_decoder_test_build
|
|
cd /tmp/dbc_decoder_test_build
|
|
qmake /absolute/path/to/dbc/tests/dbc_decoder_test.pro
|
|
make
|
|
./dbc_decoder_test
|
|
```
|
|
|
|
The executable returns a nonzero exit code if any case fails. Checks remain
|
|
active in release builds and do not depend on `assert` or an external test framework.
|
|
|
|
Coverage includes Motorola bit numbering within and across bytes, unaligned
|
|
signals, signed values, scaling, 64-bit extraction, invalid lengths, insufficient
|
|
payloads, and Intel regression cases. Frame validity means the definition was
|
|
found; insufficient payloads are checked through signal validity.
|