Skip to content

Refactor and cleanup#1

Merged
xqgex merged 10 commits intomainfrom
refactor_and_cleanup
Jan 27, 2026
Merged

Refactor and cleanup#1
xqgex merged 10 commits intomainfrom
refactor_and_cleanup

Conversation

@xqgex
Copy link
Owner

@xqgex xqgex commented Jan 26, 2026

Pull Request

Description

Upgrade to Python 3.11 and simplify template context

  • Bump minimum Python version from 3.10 to 3.11 in pyproject.toml
  • Remove conditional Self import (now native in 3.11)
  • Remove from __future__ import annotations imports
  • Refactor Jinja2 templates to use unified typedef context object
    instead of individual variables (type_name, is_extensible, etc.)
  • Extract helper methods in EnumeratedType.from_asn1 for better readability
  • Update test fixtures to use template-based code generation
  • Replace hypothesis.assume() with .filter() for cleaner property tests
  • Add codespell ignore words: bitstring, ifndef
  • Configure pylint: max-attributes=8, max-module-lines=2000, disable W0511

Related Issue

N/A

Additional Notes

N/A

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Performance improvement

Checklist

  • My code follows the project's zero-copy coding style
  • I have read the CONTRIBUTING.md guidelines
  • I have added/updated documentation as needed
  • I have added tests that prove my fix/feature works
  • I have run tests locally (make test)
  • I have run static analysis checks locally (make check)
  • I have verified that my changes do not introduce new memory leaks (make valgrind and make sanitize)
  • I have signed my commits (DCO) using git commit -s

xqgex added 2 commits January 25, 2026 19:02
- Bump minimum Python version from 3.10 to 3.11 in pyproject.toml
- Remove conditional Self import (now native in 3.11)
- Remove `from __future__ import annotations` imports
- Refactor Jinja2 templates to use unified `typedef` context object
  instead of individual variables (type_name, is_extensible, etc.)
- Extract helper methods in EnumeratedType.from_asn1 for better readability
- Update test fixtures to use template-based code generation
- Replace hypothesis.assume() with .filter() for cleaner property tests
- Add codespell ignore words: bitstring, ifndef
- Configure pylint: max-attributes=8, max-module-lines=2000, disable W0511

Signed-off-by: Yogev Neumann <xqgex@users.noreply.github.com>
Signed-off-by: Yogev Neumann <xqgex@users.noreply.github.com>
@xqgex xqgex self-assigned this Jan 26, 2026
Copilot AI review requested due to automatic review settings January 26, 2026 03:24
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request upgrades the Python tooling to Python 3.11 and refactors the Jinja2 template context to use a unified typedef object instead of individual variables.

Changes:

  • Python version bumped from 3.10 to 3.11, removing legacy from __future__ import annotations and conditional Self imports
  • Template context refactored: all .j2 templates now receive a single typedef parameter instead of multiple individual variables
  • Generator functions deleted from tools/j2735_c_generator_* modules and moved inline into test files
  • Test improvements: hypothesis tests use .filter() instead of assume() for cleaner test generation
  • Configuration updates: codespell ignore words, pylint settings, GitHub workflow adjustments

Reviewed changes

Copilot reviewed 81 out of 81 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tools/pyproject.toml Python 3.11 upgrade, pylint config updates, codespell additions
tools/j2735_spec_*.py Removed from __future__ imports, unified Self import
tools/templates/**/*.j2 Refactored to use typedef context object consistently
tools/tests/**/*.py Generator functions moved inline, hypothesis tests improved
tools/j2735_c_generator_bitstring/** Module files deleted, functionality moved to tests
tools/j2735_c_generator_sequence/** Module files deleted, functionality moved to tests
README.md Simplified structure, improved clarity
tests/unity.c Formatting/whitespace changes only
.github/** Workflow and instructions updates

xqgex and others added 2 commits January 25, 2026 23:47
Signed-off-by: Yogev Neumann <xqgex@users.noreply.github.com>
Repository owner deleted a comment from github-actions bot Jan 26, 2026
Repository owner deleted a comment from github-actions bot Jan 26, 2026
Signed-off-by: Yogev Neumann <xqgex@users.noreply.github.com>
Repository owner deleted a comment from github-actions bot Jan 26, 2026
Repository owner deleted a comment from github-actions bot Jan 26, 2026
Repository owner deleted a comment from github-actions bot Jan 27, 2026
Repository owner deleted a comment from github-actions bot Jan 27, 2026
Signed-off-by: Yogev Neumann <xqgex@users.noreply.github.com>
Repository owner deleted a comment from github-actions bot Jan 27, 2026
Repository owner deleted a comment from github-actions bot Jan 27, 2026
Signed-off-by: Yogev Neumann <xqgex@users.noreply.github.com>
Repository owner deleted a comment from github-actions bot Jan 27, 2026
Repository owner deleted a comment from github-actions bot Jan 27, 2026
xqgex added 2 commits January 27, 2026 01:21
Signed-off-by: Yogev Neumann <xqgex@users.noreply.github.com>
Signed-off-by: Yogev Neumann <xqgex@users.noreply.github.com>
Repository owner deleted a comment from github-actions bot Jan 27, 2026
Repository owner deleted a comment from github-actions bot Jan 27, 2026
@github-actions
Copy link
Contributor

Python CI Report

Commit: 796b3ce97caec706f02707e5194cc99cb9f6c176


Python Tests

Test Output
============================================================
Running Doctests
============================================================
  ✓ All 238 doctest tests passed

============================================================
Running Unit Tests
============================================================
  ✓ All 242 unit tests passed

============================================================
✓ ALL TESTS PASSED
============================================================

✅ All tests passed


Coverage: 97%

Module Cover
j2735_c_generator_bitwidth_constants.py 100% ✅
j2735_c_generator_jinja.py 100% ✅
j2735_c_generator_size_constants.py 100% ✅
test_bitstring_common.py 100% ✅
test_bitstring_get.py 100% ✅
test_bitstring_get_one.py 100% ✅
test_bitstring_internal_bit_pos.py 100% ✅
test_bitstring_internal_get_all.py 100% ✅
test_bitstring_internal_get_one.py 100% ✅
test_bitstring_internal_is_extension.py 100% ✅
test_bitstring_internal_raw_read.py 100% ✅
test_bitstring_is_extended.py 100% ✅
test_bitstring_size.py 100% ✅
test_jinja_filters.py 100% ✅
test_sequence_has_extension.py 100% ✅
test_sequence_root_size.py 100% ✅
test_sequence_size_func.py 100% ✅
test_wire_format.py 100% ✅
test_spec_file.py 100% ✅
test_bitstring_constraint.py 100% ✅
test_brace_extraction.py 100% ✅
test_choice_type.py 100% ✅
test_constraint_validation.py 100% ✅
test_enumerated_type.py 100% ✅
test_ia5string_constraint.py 100% ✅
test_integer_constraint.py 100% ✅
test_octet_constraint.py 100% ✅
test_parsing.py 100% ✅
test_properties.py 100% ✅
test_sequence_field.py 100% ✅
test_sequence_of_type.py 100% ✅
test_type_definition.py 100% ✅
j2735_spec_constraints.py 99% ✅
j2735_spec_parser.py 99% ✅
conftest.py 96% ✅
j2735_c_generator_wire_format.py 94% ✅
test_uper_constraint.py 92% ✅
j2735_c_generator_data_frame.py 86% ⚠️
run_tests.py 83% ⚠️
j2735_c_generator_data_element.py 38% ❌
j2735.py 22% ❌
Details (2292 statements, 61 missed)
Module Stmts Miss Missing Lines
j2735_c_generator_bitwidth_constants.py 13 0 -
j2735_c_generator_jinja.py 36 0 -
j2735_c_generator_size_constants.py 11 0 -
test_bitstring_common.py 32 0 -
test_bitstring_get.py 11 0 -
test_bitstring_get_one.py 21 0 -
test_bitstring_internal_bit_pos.py 26 0 -
test_bitstring_internal_get_all.py 10 0 -
test_bitstring_internal_get_one.py 12 0 -
test_bitstring_internal_is_extension.py 11 0 -
test_bitstring_internal_raw_read.py 15 0 -
test_bitstring_is_extended.py 10 0 -
test_bitstring_size.py 20 0 -
test_jinja_filters.py 32 0 -
test_sequence_has_extension.py 40 0 -
test_sequence_root_size.py 48 0 -
test_sequence_size_func.py 62 0 -
test_wire_format.py 35 0 -
test_spec_file.py 65 0 -
test_bitstring_constraint.py 135 0 -
test_brace_extraction.py 27 0 -
test_choice_type.py 27 0 -
test_constraint_validation.py 79 0 -
test_enumerated_type.py 51 0 -
test_ia5string_constraint.py 18 0 -
test_integer_constraint.py 36 0 -
test_octet_constraint.py 18 0 -
test_parsing.py 124 0 -
test_properties.py 143 0 -
test_sequence_field.py 119 0 -
test_sequence_of_type.py 15 0 -
test_type_definition.py 12 0 -
j2735_spec_constraints.py 409 4 130, 143, 379, 1562
j2735_spec_parser.py 272 3 555, 586, 851
conftest.py 51 2 237, 280
j2735_c_generator_wire_format.py 69 4 219, 229, 233, 238
test_uper_constraint.py 26 2 51, 56
j2735_c_generator_data_frame.py 29 4 62, 66, 93, 102
run_tests.py 75 13 51, 93, 97, 98, 99, 134, 135, 142, 168, 169, ... (+3 more)
j2735_c_generator_data_element.py 13 8 41, 42, 43, 44, 45, 51, 52, 54
j2735.py 27 21 37, 41, 46, 52, 57, 59, 60, 61, 62, 63, ... (+11 more)

Python Static Analysis

Tool Status
mypy
pylint
flake8
ruff
codespell

mypy

Success: no issues found in 46 source files

pylint


------------------------------------
Your code has been rated at 10.00/10

flake8

No issues found

ruff

All checks passed!

codespell

No issues found

@github-actions
Copy link
Contributor

CI Report

Commit: 796b3ce97caec706f02707e5194cc99cb9f6c176


Static Analysis

Tool Status
cppcheck
clang-tidy

cppcheck

Click to expand
make[1]: Entering directory '/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests'
=== Static Analysis (cppcheck) ===
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_api.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_api.h: __GNUC__=1...
1/29 files checked 0% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_AllowedManeuvers.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_AllowedManeuvers.h: __GNUC__=1...
2/29 files checked 4% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_BrakeAppliedStatus.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_BrakeAppliedStatus.h: __GNUC__=1...
3/29 files checked 6% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_ExteriorLights.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_ExteriorLights.h: __GNUC__=1...
4/29 files checked 10% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_GNSSstatus.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_GNSSstatus.h: __GNUC__=1...
5/29 files checked 13% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_LaneDirection.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_LaneDirection.h: __GNUC__=1...
6/29 files checked 16% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_LaneSharing.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_LaneSharing.h: __GNUC__=1...
7/29 files checked 19% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_PersonalAssistive.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_PersonalAssistive.h: __GNUC__=1...
8/29 files checked 23% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_PersonalDeviceUsageState.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_PersonalDeviceUsageState.h: __GNUC__=1...
9/29 files checked 28% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_PublicSafetyAndRoadWorkerActivity.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_PublicSafetyAndRoadWorkerActivity.h: __GNUC__=1...
10/29 files checked 32% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_PublicSafetyDirectingTrafficSubType.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_PublicSafetyDirectingTrafficSubType.h: __GNUC__=1...
11/29 files checked 37% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_TrafficLightOperationStatus.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_TrafficLightOperationStatus.h: __GNUC__=1...
12/29 files checked 41% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_TransitStatus.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_TransitStatus.h: __GNUC__=1...
13/29 files checked 44% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_UserSizeAndBehaviour.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_UserSizeAndBehaviour.h: __GNUC__=1...
14/29 files checked 48% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_VehicleEventFlags.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_VehicleEventFlags.h: __GNUC__=1...
15/29 files checked 53% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_VerticalAccelerationThreshold.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DE_VerticalAccelerationThreshold.h: __GNUC__=1...
16/29 files checked 56% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DF_BSMcoreData.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DF_BSMcoreData.h: __GNUC__=1...
17/29 files checked 59% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DF_IntersectionReferenceID.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DF_IntersectionReferenceID.h: __GNUC__=1...
18/29 files checked 60% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DF_PathPrediction.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DF_PathPrediction.h: __GNUC__=1...
19/29 files checked 61% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_common.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_common.h: __GNUC__=1...
20/29 files checked 63% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_constants.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_constants.h: __GNUC__=1...
21/29 files checked 70% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_inline.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_inline.h: __GNUC__=1...
22/29 files checked 72% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_toolkit.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_toolkit.h: __GNUC__=1...
23/29 files checked 74% done
Checking J2735_run_tests.c ...
Checking J2735_run_tests.c: __GNUC__=1...
24/29 files checked 74% done
Checking J2735_UPER_test.c ...
Checking J2735_UPER_test.c: __GNUC__=1...
25/29 files checked 81% done
Checking J2735_internal_DE_VehicleEventFlags_test.c ...
Checking J2735_internal_DE_VehicleEventFlags_test.c: __GNUC__=1...
26/29 files checked 95% done
Checking J2735_internal_DF_BSMcoreData_test.c ...
Checking J2735_internal_DF_BSMcoreData_test.c: __GNUC__=1...
27/29 files checked 96% done
Checking J2735_internal_DF_IntersectionReferenceID_test.c ...
Checking J2735_internal_DF_IntersectionReferenceID_test.c: __GNUC__=1...
28/29 files checked 97% done
Checking J2735_internal_DF_PathPrediction_test.c ...
Checking J2735_internal_DF_PathPrediction_test.c: __GNUC__=1...
29/29 files checked 100% done
nofile:0:0: information: Active checkers: 143/592 (use --checkers-report=<filename> to see details) [checkersReport]

=== Static Analysis Complete ===
make[1]: Leaving directory '/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests'

clang-tidy

Click to expand
make[1]: Entering directory '/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests'
=== clang-tidy ===
[1/6] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_run_tests.c.
2400 warnings generated.
[2/6] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_UPER_test.c.
4806 warnings generated.
[3/6] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_internal_DE_VehicleEventFlags_test.c.
7265 warnings generated.
[4/6] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_internal_DF_BSMcoreData_test.c.
9671 warnings generated.
[5/6] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_internal_DF_IntersectionReferenceID_test.c.
12077 warnings generated.
[6/6] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_internal_DF_PathPrediction_test.c.
14483 warnings generated.
Suppressed 14493 warnings (14483 in non-user code, 10 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
=== clang-tidy Complete ===
make[1]: Leaving directory '/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests'

Sanitizers (ASan + UBSan)

Test Output
make[1]: Entering directory '/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests'
gcc -std=c17 -O3 -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -Wno-float-equal -Wno-padded -c -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_UPER_test.o J2735_UPER_test.c
gcc -std=c17 -O3 -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -Wno-float-equal -Wno-padded -c -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DE_VehicleEventFlags_test.o J2735_internal_DE_VehicleEventFlags_test.c
gcc -std=c17 -O3 -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -Wno-float-equal -Wno-padded -c -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_BSMcoreData_test.o J2735_internal_DF_BSMcoreData_test.c
gcc -std=c17 -O3 -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -Wno-float-equal -Wno-padded -c -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_IntersectionReferenceID_test.o J2735_internal_DF_IntersectionReferenceID_test.c
gcc -std=c17 -O3 -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -Wno-float-equal -Wno-padded -c -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_PathPrediction_test.o J2735_internal_DF_PathPrediction_test.c
gcc -std=c17 -O3 -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -Wno-float-equal -Wno-padded -c -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/unity.o unity.c
=== AddressSanitizer ===
gcc -fsanitize=address -std=c17 -g -O1 -fno-omit-frame-pointer -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_test_asan \
	J2735_run_tests.c /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_UPER_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DE_VehicleEventFlags_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_BSMcoreData_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_IntersectionReferenceID_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_PathPrediction_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/unity.o
/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_test_asan
J2735_run_tests.c:114:test_bsm_core_data_fixed_data:PASS
J2735_run_tests.c:137:test_intersection_reference_id_optional_field_absent:PASS
J2735_run_tests.c:138:test_intersection_reference_id_optional_field_present:PASS
J2735_run_tests.c:223:test_path_prediction_no_extension:PASS
J2735_run_tests.c:224:test_path_prediction_with_extension:PASS
J2735_run_tests.c:225:test_path_prediction_signed_negative:PASS
J2735_run_tests.c:885:test_inline_read_length_determinant_short_form_min:PASS
J2735_run_tests.c:886:test_inline_read_length_determinant_short_form_max:PASS
J2735_run_tests.c:887:test_inline_read_length_determinant_short_form_typical:PASS
J2735_run_tests.c:888:test_inline_read_length_determinant_long_form_min:PASS
J2735_run_tests.c:889:test_inline_read_length_determinant_long_form_128:PASS
J2735_run_tests.c:890:test_inline_read_length_determinant_long_form_max:PASS
J2735_run_tests.c:891:test_inline_read_length_determinant_fragmented_error:PASS
J2735_run_tests.c:892:test_inline_read_length_determinant_nonzero_bit_offset:PASS
J2735_run_tests.c:895:test_inline_read_nsnnwn_small_form_min:PASS
J2735_run_tests.c:896:test_inline_read_nsnnwn_small_form_max:PASS
J2735_run_tests.c:897:test_inline_read_nsnnwn_small_form_typical:PASS
J2735_run_tests.c:898:test_inline_read_nsnnwn_large_form_64:PASS
J2735_run_tests.c:899:test_inline_read_nsnnwn_large_form_100:PASS
J2735_run_tests.c:900:test_inline_read_nsnnwn_large_form_255:PASS
J2735_run_tests.c:901:test_inline_read_nsnnwn_large_form_256:PASS
J2735_run_tests.c:902:test_inline_read_nsnnwn_large_form_65535:PASS
J2735_run_tests.c:903:test_inline_read_nsnnwn_large_form_4_bytes:PASS
J2735_run_tests.c:904:test_inline_read_nsnnwn_large_form_5_bytes_error:PASS
J2735_run_tests.c:905:test_inline_read_nsnnwn_fragmented_error:PASS
J2735_run_tests.c:906:test_inline_read_nsnnwn_nonzero_bit_offset:PASS
J2735_run_tests.c:909:test_inline_skip_extensions_one_slot_none_present:PASS
J2735_run_tests.c:910:test_inline_skip_extensions_one_slot_present:PASS
J2735_run_tests.c:911:test_inline_skip_extensions_two_slots_both_present:PASS
J2735_run_tests.c:912:test_inline_skip_extensions_two_slots_first_only:PASS
J2735_run_tests.c:913:test_inline_skip_extensions_two_slots_second_only:PASS
J2735_run_tests.c:914:test_inline_skip_extensions_empty_content:PASS
J2735_run_tests.c:915:test_inline_skip_extensions_nsnnwn_error:PASS
J2735_run_tests.c:916:test_inline_skip_extensions_length_error:PASS
J2735_run_tests.c:917:test_inline_skip_extensions_nonzero_offset:PASS
J2735_run_tests.c:918:test_inline_skip_extensions_too_many_extensions:PASS
J2735_run_tests.c:1214:test_vehicle_event_flags_non_extended:PASS
J2735_run_tests.c:1215:test_vehicle_event_flags_extended:PASS
J2735_run_tests.c:1226:test_vehicle_event_flags_individual_extended_flags_0_to_4:PASS
J2735_run_tests.c:1227:test_vehicle_event_flags_individual_extended_flags_5_to_9:PASS
J2735_run_tests.c:1228:test_vehicle_event_flags_individual_extended_flags_10_to_13:PASS
J2735_run_tests.c:1229:test_vehicle_event_flags_individual_non_extended_flags_0_to_4:PASS
J2735_run_tests.c:1230:test_vehicle_event_flags_individual_non_extended_flags_5_to_9:PASS
J2735_run_tests.c:1231:test_vehicle_event_flags_individual_non_extended_flags_10_to_13:PASS
J2735_run_tests.c:1238:test_vehicle_event_flags_size_non_extended:PASS
J2735_run_tests.c:1239:test_vehicle_event_flags_size_extended:PASS
J2735_run_tests.c:1248:test_vehicle_event_flags_all_zeros_non_extended:PASS
J2735_run_tests.c:1249:test_vehicle_event_flags_extended_single_jackknife:PASS
J2735_run_tests.c:1250:test_vehicle_event_flags_non_extended_all_root_flags_on_metadata:PASS
J2735_run_tests.c:1251:test_vehicle_event_flags_non_extended_all_root_flags_on_bits:PASS
J2735_run_tests.c:1252:test_vehicle_event_flags_extended_all_zeros:PASS
J2735_run_tests.c:1259:test_vehicle_event_flags_non_extended_alternating_0x1555_metadata:PASS
J2735_run_tests.c:1260:test_vehicle_event_flags_non_extended_alternating_0x1555_0_to_4:PASS
J2735_run_tests.c:1261:test_vehicle_event_flags_non_extended_alternating_0x1555_5_to_9:PASS
J2735_run_tests.c:1262:test_vehicle_event_flags_non_extended_alternating_0x1555_10_to_12:PASS
J2735_run_tests.c:1263:test_vehicle_event_flags_non_extended_alternating_0x0AAA_metadata:PASS
J2735_run_tests.c:1264:test_vehicle_event_flags_non_extended_alternating_0x0AAA_0_to_4:PASS
J2735_run_tests.c:1265:test_vehicle_event_flags_non_extended_alternating_0x0AAA_5_to_9:PASS
J2735_run_tests.c:1266:test_vehicle_event_flags_non_extended_alternating_0x0AAA_10_to_12:PASS
J2735_run_tests.c:1275:test_vehicle_event_flags_single_bit_0_hazard_lights:PASS
J2735_run_tests.c:1276:test_vehicle_event_flags_single_bit_12_airbag:PASS
J2735_run_tests.c:1277:test_vehicle_event_flags_single_bit_7_hard_braking:PASS
J2735_run_tests.c:1278:test_vehicle_event_flags_extended_single_hazard_lights:PASS

-----------------------
63 Tests 0 Failures 0 Ignored 
OK

=== UndefinedBehaviorSanitizer ===
gcc -fsanitize=undefined -std=c17 -g -O1 -fno-omit-frame-pointer -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_test_ubsan \
	J2735_run_tests.c /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_UPER_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DE_VehicleEventFlags_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_BSMcoreData_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_IntersectionReferenceID_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_PathPrediction_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/unity.o
/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_test_ubsan
J2735_run_tests.c:114:test_bsm_core_data_fixed_data:PASS
J2735_run_tests.c:137:test_intersection_reference_id_optional_field_absent:PASS
J2735_run_tests.c:138:test_intersection_reference_id_optional_field_present:PASS
J2735_run_tests.c:223:test_path_prediction_no_extension:PASS
J2735_run_tests.c:224:test_path_prediction_with_extension:PASS
J2735_run_tests.c:225:test_path_prediction_signed_negative:PASS
J2735_run_tests.c:885:test_inline_read_length_determinant_short_form_min:PASS
J2735_run_tests.c:886:test_inline_read_length_determinant_short_form_max:PASS
J2735_run_tests.c:887:test_inline_read_length_determinant_short_form_typical:PASS
J2735_run_tests.c:888:test_inline_read_length_determinant_long_form_min:PASS
J2735_run_tests.c:889:test_inline_read_length_determinant_long_form_128:PASS
J2735_run_tests.c:890:test_inline_read_length_determinant_long_form_max:PASS
J2735_run_tests.c:891:test_inline_read_length_determinant_fragmented_error:PASS
J2735_run_tests.c:892:test_inline_read_length_determinant_nonzero_bit_offset:PASS
J2735_run_tests.c:895:test_inline_read_nsnnwn_small_form_min:PASS
J2735_run_tests.c:896:test_inline_read_nsnnwn_small_form_max:PASS
J2735_run_tests.c:897:test_inline_read_nsnnwn_small_form_typical:PASS
J2735_run_tests.c:898:test_inline_read_nsnnwn_large_form_64:PASS
J2735_run_tests.c:899:test_inline_read_nsnnwn_large_form_100:PASS
J2735_run_tests.c:900:test_inline_read_nsnnwn_large_form_255:PASS
J2735_run_tests.c:901:test_inline_read_nsnnwn_large_form_256:PASS
J2735_run_tests.c:902:test_inline_read_nsnnwn_large_form_65535:PASS
J2735_run_tests.c:903:test_inline_read_nsnnwn_large_form_4_bytes:PASS
J2735_run_tests.c:904:test_inline_read_nsnnwn_large_form_5_bytes_error:PASS
J2735_run_tests.c:905:test_inline_read_nsnnwn_fragmented_error:PASS
J2735_run_tests.c:906:test_inline_read_nsnnwn_nonzero_bit_offset:PASS
J2735_run_tests.c:909:test_inline_skip_extensions_one_slot_none_present:PASS
J2735_run_tests.c:910:test_inline_skip_extensions_one_slot_present:PASS
J2735_run_tests.c:911:test_inline_skip_extensions_two_slots_both_present:PASS
J2735_run_tests.c:912:test_inline_skip_extensions_two_slots_first_only:PASS
J2735_run_tests.c:913:test_inline_skip_extensions_two_slots_second_only:PASS
J2735_run_tests.c:914:test_inline_skip_extensions_empty_content:PASS
J2735_run_tests.c:915:test_inline_skip_extensions_nsnnwn_error:PASS
J2735_run_tests.c:916:test_inline_skip_extensions_length_error:PASS
J2735_run_tests.c:917:test_inline_skip_extensions_nonzero_offset:PASS
J2735_run_tests.c:918:test_inline_skip_extensions_too_many_extensions:PASS
J2735_run_tests.c:1214:test_vehicle_event_flags_non_extended:PASS
J2735_run_tests.c:1215:test_vehicle_event_flags_extended:PASS
J2735_run_tests.c:1226:test_vehicle_event_flags_individual_extended_flags_0_to_4:PASS
J2735_run_tests.c:1227:test_vehicle_event_flags_individual_extended_flags_5_to_9:PASS
J2735_run_tests.c:1228:test_vehicle_event_flags_individual_extended_flags_10_to_13:PASS
J2735_run_tests.c:1229:test_vehicle_event_flags_individual_non_extended_flags_0_to_4:PASS
J2735_run_tests.c:1230:test_vehicle_event_flags_individual_non_extended_flags_5_to_9:PASS
J2735_run_tests.c:1231:test_vehicle_event_flags_individual_non_extended_flags_10_to_13:PASS
J2735_run_tests.c:1238:test_vehicle_event_flags_size_non_extended:PASS
J2735_run_tests.c:1239:test_vehicle_event_flags_size_extended:PASS
J2735_run_tests.c:1248:test_vehicle_event_flags_all_zeros_non_extended:PASS
J2735_run_tests.c:1249:test_vehicle_event_flags_extended_single_jackknife:PASS
J2735_run_tests.c:1250:test_vehicle_event_flags_non_extended_all_root_flags_on_metadata:PASS
J2735_run_tests.c:1251:test_vehicle_event_flags_non_extended_all_root_flags_on_bits:PASS
J2735_run_tests.c:1252:test_vehicle_event_flags_extended_all_zeros:PASS
J2735_run_tests.c:1259:test_vehicle_event_flags_non_extended_alternating_0x1555_metadata:PASS
J2735_run_tests.c:1260:test_vehicle_event_flags_non_extended_alternating_0x1555_0_to_4:PASS
J2735_run_tests.c:1261:test_vehicle_event_flags_non_extended_alternating_0x1555_5_to_9:PASS
J2735_run_tests.c:1262:test_vehicle_event_flags_non_extended_alternating_0x1555_10_to_12:PASS
J2735_run_tests.c:1263:test_vehicle_event_flags_non_extended_alternating_0x0AAA_metadata:PASS
J2735_run_tests.c:1264:test_vehicle_event_flags_non_extended_alternating_0x0AAA_0_to_4:PASS
J2735_run_tests.c:1265:test_vehicle_event_flags_non_extended_alternating_0x0AAA_5_to_9:PASS
J2735_run_tests.c:1266:test_vehicle_event_flags_non_extended_alternating_0x0AAA_10_to_12:PASS
J2735_run_tests.c:1275:test_vehicle_event_flags_single_bit_0_hazard_lights:PASS
J2735_run_tests.c:1276:test_vehicle_event_flags_single_bit_12_airbag:PASS
J2735_run_tests.c:1277:test_vehicle_event_flags_single_bit_7_hard_braking:PASS
J2735_run_tests.c:1278:test_vehicle_event_flags_extended_single_hazard_lights:PASS

-----------------------
63 Tests 0 Failures 0 Ignored 
OK

=== Sanitizer Checks Complete ===
make[1]: Leaving directory '/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests'

✅ No issues detected


Valgrind Memory Check

Test Output
make[1]: Entering directory '/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests'
gcc -std=c17 -O3 -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -Wno-float-equal -Wno-padded -c -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_UPER_test.o J2735_UPER_test.c
gcc -std=c17 -O3 -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -Wno-float-equal -Wno-padded -c -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DE_VehicleEventFlags_test.o J2735_internal_DE_VehicleEventFlags_test.c
gcc -std=c17 -O3 -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -Wno-float-equal -Wno-padded -c -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_BSMcoreData_test.o J2735_internal_DF_BSMcoreData_test.c
gcc -std=c17 -O3 -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -Wno-float-equal -Wno-padded -c -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_IntersectionReferenceID_test.o J2735_internal_DF_IntersectionReferenceID_test.c
gcc -std=c17 -O3 -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -Wno-float-equal -Wno-padded -c -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_PathPrediction_test.o J2735_internal_DF_PathPrediction_test.c
gcc -std=c17 -O3 -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -Wno-float-equal -Wno-padded -c -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/unity.o unity.c
=== Valgrind Memory Check ===
gcc -std=c17 -g -O1 -fno-omit-frame-pointer -Wall -Waggregate-return -Walloca -Wbad-function-cast -Wcast-align -Wcast-qual -Wconversion -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Werror -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self -Winline -Winline -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wmultichar -Wnested-externs -Wnull-dereference -Wold-style-definition -Wpadded -Wpedantic -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wunused-macros -Wvla -Wwrite-strings -Walloc-zero -Wanalyzer-too-complex -Warith-conversion -Wcast-align=strict -Wduplicated-branches -Wduplicated-cond -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation=2 -Wjump-misses-init -Wlogical-op -Wrestrict -Wshift-overflow=2 -Wsuggest-attribute=cold -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsuggest-final-methods -Wsuggest-final-types -Wtrampolines -Wtrampolines -Wunsuffixed-float-constants -Winvalid-utf8 -Wstrict-flex-arrays -fstrict-flex-arrays=3 -I/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src -o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_test_valgrind \
	J2735_run_tests.c /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_UPER_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DE_VehicleEventFlags_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_BSMcoreData_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_IntersectionReferenceID_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_internal_DF_PathPrediction_test.o /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/unity.o
valgrind \
	--leak-check=full \
	--error-exitcode=1 \
	--show-leak-kinds=all \
	--track-origins=yes \
	/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_test_valgrind
==2773== Memcheck, a memory error detector
==2773== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==2773== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
==2773== Command: /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_test_valgrind
==2773== 
J2735_run_tests.c:114:test_bsm_core_data_fixed_data:PASS
J2735_run_tests.c:137:test_intersection_reference_id_optional_field_absent:PASS
J2735_run_tests.c:138:test_intersection_reference_id_optional_field_present:PASS
J2735_run_tests.c:223:test_path_prediction_no_extension:PASS
J2735_run_tests.c:224:test_path_prediction_with_extension:PASS
J2735_run_tests.c:225:test_path_prediction_signed_negative:PASS
J2735_run_tests.c:885:test_inline_read_length_determinant_short_form_min:PASS
J2735_run_tests.c:886:test_inline_read_length_determinant_short_form_max:PASS
J2735_run_tests.c:887:test_inline_read_length_determinant_short_form_typical:PASS
J2735_run_tests.c:888:test_inline_read_length_determinant_long_form_min:PASS
J2735_run_tests.c:889:test_inline_read_length_determinant_long_form_128:PASS
J2735_run_tests.c:890:test_inline_read_length_determinant_long_form_max:PASS
J2735_run_tests.c:891:test_inline_read_length_determinant_fragmented_error:PASS
J2735_run_tests.c:892:test_inline_read_length_determinant_nonzero_bit_offset:PASS
J2735_run_tests.c:895:test_inline_read_nsnnwn_small_form_min:PASS
J2735_run_tests.c:896:test_inline_read_nsnnwn_small_form_max:PASS
J2735_run_tests.c:897:test_inline_read_nsnnwn_small_form_typical:PASS
J2735_run_tests.c:898:test_inline_read_nsnnwn_large_form_64:PASS
J2735_run_tests.c:899:test_inline_read_nsnnwn_large_form_100:PASS
J2735_run_tests.c:900:test_inline_read_nsnnwn_large_form_255:PASS
J2735_run_tests.c:901:test_inline_read_nsnnwn_large_form_256:PASS
J2735_run_tests.c:902:test_inline_read_nsnnwn_large_form_65535:PASS
J2735_run_tests.c:903:test_inline_read_nsnnwn_large_form_4_bytes:PASS
J2735_run_tests.c:904:test_inline_read_nsnnwn_large_form_5_bytes_error:PASS
J2735_run_tests.c:905:test_inline_read_nsnnwn_fragmented_error:PASS
J2735_run_tests.c:906:test_inline_read_nsnnwn_nonzero_bit_offset:PASS
J2735_run_tests.c:909:test_inline_skip_extensions_one_slot_none_present:PASS
J2735_run_tests.c:910:test_inline_skip_extensions_one_slot_present:PASS
J2735_run_tests.c:911:test_inline_skip_extensions_two_slots_both_present:PASS
J2735_run_tests.c:912:test_inline_skip_extensions_two_slots_first_only:PASS
J2735_run_tests.c:913:test_inline_skip_extensions_two_slots_second_only:PASS
J2735_run_tests.c:914:test_inline_skip_extensions_empty_content:PASS
J2735_run_tests.c:915:test_inline_skip_extensions_nsnnwn_error:PASS
J2735_run_tests.c:916:test_inline_skip_extensions_length_error:PASS
J2735_run_tests.c:917:test_inline_skip_extensions_nonzero_offset:PASS
J2735_run_tests.c:918:test_inline_skip_extensions_too_many_extensions:PASS
J2735_run_tests.c:1214:test_vehicle_event_flags_non_extended:PASS
J2735_run_tests.c:1215:test_vehicle_event_flags_extended:PASS
J2735_run_tests.c:1226:test_vehicle_event_flags_individual_extended_flags_0_to_4:PASS
J2735_run_tests.c:1227:test_vehicle_event_flags_individual_extended_flags_5_to_9:PASS
J2735_run_tests.c:1228:test_vehicle_event_flags_individual_extended_flags_10_to_13:PASS
J2735_run_tests.c:1229:test_vehicle_event_flags_individual_non_extended_flags_0_to_4:PASS
J2735_run_tests.c:1230:test_vehicle_event_flags_individual_non_extended_flags_5_to_9:PASS
J2735_run_tests.c:1231:test_vehicle_event_flags_individual_non_extended_flags_10_to_13:PASS
J2735_run_tests.c:1238:test_vehicle_event_flags_size_non_extended:PASS
J2735_run_tests.c:1239:test_vehicle_event_flags_size_extended:PASS
J2735_run_tests.c:1248:test_vehicle_event_flags_all_zeros_non_extended:PASS
J2735_run_tests.c:1249:test_vehicle_event_flags_extended_single_jackknife:PASS
J2735_run_tests.c:1250:test_vehicle_event_flags_non_extended_all_root_flags_on_metadata:PASS
J2735_run_tests.c:1251:test_vehicle_event_flags_non_extended_all_root_flags_on_bits:PASS
J2735_run_tests.c:1252:test_vehicle_event_flags_extended_all_zeros:PASS
J2735_run_tests.c:1259:test_vehicle_event_flags_non_extended_alternating_0x1555_metadata:PASS
J2735_run_tests.c:1260:test_vehicle_event_flags_non_extended_alternating_0x1555_0_to_4:PASS
J2735_run_tests.c:1261:test_vehicle_event_flags_non_extended_alternating_0x1555_5_to_9:PASS
J2735_run_tests.c:1262:test_vehicle_event_flags_non_extended_alternating_0x1555_10_to_12:PASS
J2735_run_tests.c:1263:test_vehicle_event_flags_non_extended_alternating_0x0AAA_metadata:PASS
J2735_run_tests.c:1264:test_vehicle_event_flags_non_extended_alternating_0x0AAA_0_to_4:PASS
J2735_run_tests.c:1265:test_vehicle_event_flags_non_extended_alternating_0x0AAA_5_to_9:PASS
J2735_run_tests.c:1266:test_vehicle_event_flags_non_extended_alternating_0x0AAA_10_to_12:PASS
J2735_run_tests.c:1275:test_vehicle_event_flags_single_bit_0_hazard_lights:PASS
J2735_run_tests.c:1276:test_vehicle_event_flags_single_bit_12_airbag:PASS
J2735_run_tests.c:1277:test_vehicle_event_flags_single_bit_7_hard_braking:PASS
J2735_run_tests.c:1278:test_vehicle_event_flags_extended_single_hazard_lights:PASS

-----------------------
63 Tests 0 Failures 0 Ignored 
OK
==2773== 
==2773== HEAP SUMMARY:
==2773==     in use at exit: 0 bytes in 0 blocks
==2773==   total heap usage: 1 allocs, 1 frees, 4,096 bytes allocated
==2773== 
==2773== All heap blocks were freed -- no leaks are possible
==2773== 
==2773== For lists of detected and suppressed errors, rerun with: -s
==2773== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
=== Valgrind Complete ===
make[1]: Leaving directory '/home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests'

✅ No memory issues detected

@xqgex xqgex merged commit 4026321 into main Jan 27, 2026
22 checks passed
@xqgex xqgex deleted the refactor_and_cleanup branch January 27, 2026 06:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments