Skip to content

Add Data Frame CHOICE templates#5

Merged
xqgex merged 4 commits into
mainfrom
df_choice
Feb 20, 2026
Merged

Add Data Frame CHOICE templates#5
xqgex merged 4 commits into
mainfrom
df_choice

Conversation

@xqgex
Copy link
Copy Markdown
Owner

@xqgex xqgex commented Feb 20, 2026

Pull Request

Description

Add CHOICE type code generation and align naming across SEQUENCE/CHOICE pipelines.

CHOICE pipeline: generate_data_frame() now dispatches CHOICE types alongside SEQUENCE. New _generate_choice() resolves alternative bit-widths from the spec, computes shift amounts, validates the single I/O constraint (≤57 bits), and renders through assemble_df_choice.j2. Seven sub-templates in tools/templates/choice/ handle index bits, max wire bits, alternative indices, raw read, which-checker, getters (shift vs mask-only), and size calculation.

Wire format: New ChoiceWireVariant dataclass and get_choice_variants() in j2735_c_generator_wire_format.py supply domain data for a new wire_format_choice_section.j2 template that renders per-alternative box-drawing tables, mirroring the SEQUENCE contract.

Naming consistency: Generic names disambiguated now that two type classes share the pipeline:

  • WireVariantSequenceWireVariant
  • variants context variable → sequence_variants
  • wire_format_section.j2wire_format_sequence_section.j2

Generated output: J2735_internal_DF_ApproachOrLane.h — zero-copy CHOICE header for the 2-alternative ApproachOrLane type (approach=4 bits, lane=8 bits). Single I/O reads 9 bits, then pure-computation macros extract index, value, and wire size.

Test coverage: 7 C tests (J2735_internal_DF_ApproachOrLane_test.c) covering happy path, boundary values, and misaligned access. 16 Python tests (test_choice_type.py) verifying generated code structure, MISRA compliance, and error paths. Existing wire format tests updated for the rename.

Housekeeping: Reformatted from_asn1() call sites in test_sequence_field.py (argument indentation).

Related Issue

N/A

Additional Notes

Extensible CHOICE types are not yet supported - _generate_choice() raises ValueError with a clear message pointing to a future phase.

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 make pre-push and all checks pass
  • I have signed my commits (DCO) using git commit -s

Signed-off-by: Yogev Neumann <xqgex@users.noreply.github.com>
@xqgex xqgex self-assigned this Feb 20, 2026
Copilot AI review requested due to automatic review settings February 20, 2026 08:51
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 20, 2026

Python CI Report

Commit: ae61d16a20172c09f58842ba322bb9d49b68f4a3


Python Tests

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

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

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

✅ All tests passed


Coverage: 98%

Per-file coverage (52 modules)
Module Cover
j2735_c_generator_bitwidth_constants.py 100% ✅
j2735_c_generator_jinja.py 100% ✅
j2735_c_generator_size_constants.py 100% ✅
j2735_c_generator_wire_format.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_ext_size.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_max_wire_bits.py 100% ✅
test_bitstring_internal_raw_read.py 100% ✅
test_bitstring_internal_root_size.py 100% ✅
test_bitstring_is_extended.py 100% ✅
test_bitstring_size.py 100% ✅
test_choice_type.py 100% ✅
test_jinja_filters.py 100% ✅
test_sequence_get.py 100% ✅
test_sequence_has_extension.py 100% ✅
test_sequence_has_field.py 100% ✅
test_sequence_internal_off.py 100% ✅
test_sequence_internal_opt.py 100% ✅
test_sequence_internal_prefix_bits.py 100% ✅
test_sequence_internal_width.py 100% ✅
test_sequence_root_size.py 100% ✅
test_sequence_size_func.py 100% ✅
test_wire_format_variants.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% ✅
test_wire_format_templates.py 100% ✅
j2735_spec_constraints.py 99% ✅
j2735_spec_parser.py 99% ✅
conftest.py 97% ✅
test_uper_constraint.py 92% ✅
j2735_c_generator_data_frame.py 84% ⚠️
run_tests.py 83% ⚠️
j2735_c_generator_data_element.py 59% ❌
j2735.py 22% ❌
Details (3362 statements, 61 missed)
Module Stmts Miss Missing Lines
j2735_c_generator_bitwidth_constants.py 13 0 -
j2735_c_generator_jinja.py 53 0 -
j2735_c_generator_size_constants.py 11 0 -
j2735_c_generator_wire_format.py 52 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 18 0 -
test_bitstring_internal_ext_size.py 19 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_max_wire_bits.py 27 0 -
test_bitstring_internal_raw_read.py 15 0 -
test_bitstring_internal_root_size.py 19 0 -
test_bitstring_is_extended.py 10 0 -
test_bitstring_size.py 20 0 -
test_choice_type.py 76 0 -
test_jinja_filters.py 65 0 -
test_sequence_get.py 55 0 -
test_sequence_has_extension.py 40 0 -
test_sequence_has_field.py 46 0 -
test_sequence_internal_off.py 54 0 -
test_sequence_internal_opt.py 46 0 -
test_sequence_internal_prefix_bits.py 52 0 -
test_sequence_internal_width.py 48 0 -
test_sequence_root_size.py 48 0 -
test_sequence_size_func.py 62 0 -
test_wire_format_variants.py 225 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 -
test_wire_format_templates.py 373 1 736
j2735_spec_constraints.py 409 4 130, 143, 379, 1562
j2735_spec_parser.py 272 3 555, 586, 851
conftest.py 66 2 579, 622
test_uper_constraint.py 26 2 51, 56
j2735_c_generator_data_frame.py 50 8 89, 126, 168, 173, 186, 188, 191, 213
run_tests.py 75 13 51, 93, 97, 98, 99, 134, 135, 142, 168, 169, ... (+3 more)
j2735_c_generator_data_element.py 17 7 61, 62, 63, 65, 66, 67, 99
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 57 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
Copy Markdown
Contributor

CI Report

Commit: ae61d16a20172c09f58842ba322bb9d49b68f4a3


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/31 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/31 files checked 3% 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/31 files checked 5% 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/31 files checked 9% 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/31 files checked 12% 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/31 files checked 13% 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/31 files checked 16% 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/31 files checked 20% 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/31 files checked 24% 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/31 files checked 28% 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/31 files checked 32% 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/31 files checked 36% 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/31 files checked 38% 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/31 files checked 41% 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/31 files checked 46% 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/31 files checked 48% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DF_ApproachOrLane.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DF_ApproachOrLane.h: __GNUC__=1...
17/31 files checked 50% 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...
18/31 files checked 53% 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...
19/31 files checked 55% 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...
20/31 files checked 56% 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...
21/31 files checked 59% 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...
22/31 files checked 64% 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...
23/31 files checked 66% 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...
24/31 files checked 68% done
Checking J2735_run_tests.c ...
Checking J2735_run_tests.c: __GNUC__=1...
25/31 files checked 68% done
Checking J2735_UPER_test.c ...
Checking J2735_UPER_test.c: __GNUC__=1...
26/31 files checked 74% done
Checking J2735_internal_DE_VehicleEventFlags_test.c ...
Checking J2735_internal_DE_VehicleEventFlags_test.c: __GNUC__=1...
27/31 files checked 86% done
Checking J2735_internal_DF_ApproachOrLane_test.c ...
Checking J2735_internal_DF_ApproachOrLane_test.c: __GNUC__=1...
28/31 files checked 89% done
Checking J2735_internal_DF_BSMcoreData_test.c ...
Checking J2735_internal_DF_BSMcoreData_test.c: __GNUC__=1...
29/31 files checked 93% done
Checking J2735_internal_DF_IntersectionReferenceID_test.c ...
Checking J2735_internal_DF_IntersectionReferenceID_test.c: __GNUC__=1...
30/31 files checked 96% done
Checking J2735_internal_DF_PathPrediction_test.c ...
Checking J2735_internal_DF_PathPrediction_test.c: __GNUC__=1...
31/31 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/7] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_run_tests.c.
2400 warnings generated.
[2/7] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_UPER_test.c.
4806 warnings generated.
[3/7] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_internal_DE_VehicleEventFlags_test.c.
7265 warnings generated.
[4/7] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_internal_DF_ApproachOrLane_test.c.
9671 warnings generated.
[5/7] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_internal_DF_BSMcoreData_test.c.
12077 warnings generated.
[6/7] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_internal_DF_IntersectionReferenceID_test.c.
14483 warnings generated.
[7/7] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_internal_DF_PathPrediction_test.c.
16889 warnings generated.
Suppressed 16899 warnings (16889 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

⚠️ Results not available (job may have been skipped)


Valgrind

⚠️ Results not available (job may have been skipped)

Copy link
Copy Markdown

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 adds CHOICE type code generation to the J2735 High-Performance Toolkit, extending the existing SEQUENCE-only code generator to support both composite type classes. The implementation follows the established zero-copy "Lens Architecture" pattern and includes comprehensive test coverage.

Changes:

  • Adds CHOICE type generation pipeline with single I/O pattern (reads max wire bits unconditionally for O(1) performance)
  • Renames generic names for type-class disambiguation: WireVariantSequenceWireVariant, template context variable variantssequence_variants
  • Adds wire format documentation templates for CHOICE alternatives (box-drawing tables mirroring SEQUENCE conventions)

Reviewed changes

Copilot reviewed 23 out of 23 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tools/j2735_c_generator_wire_format.py Adds ChoiceWireVariant dataclass and get_choice_variants() for wire format documentation; renames WireVariant to SequenceWireVariant
tools/j2735_c_generator_data_frame.py Adds _generate_choice() with type resolution, shift calculation, and single I/O validation; dispatches CHOICE alongside SEQUENCE
tools/templates/assemble_df_choice.j2 Master assembly template for CHOICE headers (includes license, wire format docs, usage pattern, and 7 sub-templates)
tools/templates/choice/*.j2 Seven sub-templates for CHOICE macros: index bits, max wire bits, alternative indices, raw read, which-checker, getters, and size calculation
tools/templates/wire_format_choice_section.j2 Renders per-alternative wire format tables with index and value segments
tools/templates/wire_format_sequence_section.j2 Renamed from wire_format_section.j2; updates context variable reference to sequence_variants
tools/templates/*.j2 (other) Updates template comments and context variable references for SEQUENCE/CHOICE disambiguation
src/J2735_internal_DF_ApproachOrLane.h Generated zero-copy CHOICE header for 2-alternative ApproachOrLane type (approach=4 bits, lane=8 bits)
tests/J2735_internal_DF_ApproachOrLane_test.c Seven C tests covering happy path, boundary values (min/max for both alternatives), and misaligned access
tests/J2735_internal_DF_ApproachOrLane_test.h Test declarations for ApproachOrLane CHOICE type
tests/J2735_run_tests.c Registers ApproachOrLane test suite in test runner
tools/tests/c_generator/test_choice_type.py Sixteen Python tests verifying CHOICE code generation structure, MISRA compliance, and error handling
tools/tests/c_generator/test_wire_format_*.py Updates references from WireVariant to SequenceWireVariant for consistency

Signed-off-by: Yogev Neumann <xqgex@users.noreply.github.com>
Signed-off-by: Yogev Neumann <xqgex@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

Python CI Report

Commit: 21b8062da71b02742a7d0c8dfcd8b28c2b493b3b


Python Tests

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

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

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

✅ All tests passed


Coverage: 98%

Per-file coverage (52 modules)
Module Cover
j2735_c_generator_bitwidth_constants.py 100% ✅
j2735_c_generator_jinja.py 100% ✅
j2735_c_generator_size_constants.py 100% ✅
j2735_c_generator_wire_format.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_ext_size.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_max_wire_bits.py 100% ✅
test_bitstring_internal_raw_read.py 100% ✅
test_bitstring_internal_root_size.py 100% ✅
test_bitstring_is_extended.py 100% ✅
test_bitstring_size.py 100% ✅
test_choice_type.py 100% ✅
test_jinja_filters.py 100% ✅
test_sequence_get.py 100% ✅
test_sequence_has_extension.py 100% ✅
test_sequence_has_field.py 100% ✅
test_sequence_internal_off.py 100% ✅
test_sequence_internal_opt.py 100% ✅
test_sequence_internal_prefix_bits.py 100% ✅
test_sequence_internal_width.py 100% ✅
test_sequence_root_size.py 100% ✅
test_sequence_size_func.py 100% ✅
test_wire_format_variants.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% ✅
test_wire_format_templates.py 100% ✅
j2735_spec_constraints.py 99% ✅
j2735_spec_parser.py 99% ✅
conftest.py 97% ✅
test_uper_constraint.py 92% ✅
j2735_c_generator_data_frame.py 84% ⚠️
run_tests.py 83% ⚠️
j2735_c_generator_data_element.py 59% ❌
j2735.py 22% ❌
Details (3362 statements, 61 missed)
Module Stmts Miss Missing Lines
j2735_c_generator_bitwidth_constants.py 13 0 -
j2735_c_generator_jinja.py 53 0 -
j2735_c_generator_size_constants.py 11 0 -
j2735_c_generator_wire_format.py 52 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 18 0 -
test_bitstring_internal_ext_size.py 19 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_max_wire_bits.py 27 0 -
test_bitstring_internal_raw_read.py 15 0 -
test_bitstring_internal_root_size.py 19 0 -
test_bitstring_is_extended.py 10 0 -
test_bitstring_size.py 20 0 -
test_choice_type.py 76 0 -
test_jinja_filters.py 65 0 -
test_sequence_get.py 55 0 -
test_sequence_has_extension.py 40 0 -
test_sequence_has_field.py 46 0 -
test_sequence_internal_off.py 54 0 -
test_sequence_internal_opt.py 46 0 -
test_sequence_internal_prefix_bits.py 52 0 -
test_sequence_internal_width.py 48 0 -
test_sequence_root_size.py 48 0 -
test_sequence_size_func.py 62 0 -
test_wire_format_variants.py 225 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 -
test_wire_format_templates.py 373 1 736
j2735_spec_constraints.py 409 4 130, 143, 379, 1562
j2735_spec_parser.py 272 3 555, 586, 851
conftest.py 66 2 579, 622
test_uper_constraint.py 26 2 51, 56
j2735_c_generator_data_frame.py 50 8 89, 126, 168, 173, 186, 188, 191, 213
run_tests.py 75 13 51, 93, 97, 98, 99, 134, 135, 142, 168, 169, ... (+3 more)
j2735_c_generator_data_element.py 17 7 61, 62, 63, 65, 66, 67, 99
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 57 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
Copy Markdown
Contributor

CI Report

Commit: 21b8062da71b02742a7d0c8dfcd8b28c2b493b3b


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/31 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/31 files checked 3% 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/31 files checked 5% 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/31 files checked 9% 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/31 files checked 12% 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/31 files checked 13% 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/31 files checked 16% 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/31 files checked 20% 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/31 files checked 24% 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/31 files checked 28% 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/31 files checked 32% 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/31 files checked 36% 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/31 files checked 38% 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/31 files checked 41% 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/31 files checked 46% 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/31 files checked 48% done
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DF_ApproachOrLane.h ...
Checking /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/src/J2735_internal_DF_ApproachOrLane.h: __GNUC__=1...
17/31 files checked 50% 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...
18/31 files checked 53% 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...
19/31 files checked 55% 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...
20/31 files checked 56% 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...
21/31 files checked 59% 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...
22/31 files checked 64% 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...
23/31 files checked 66% 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...
24/31 files checked 68% done
Checking J2735_run_tests.c ...
Checking J2735_run_tests.c: __GNUC__=1...
25/31 files checked 68% done
Checking J2735_UPER_test.c ...
Checking J2735_UPER_test.c: __GNUC__=1...
26/31 files checked 74% done
Checking J2735_internal_DE_VehicleEventFlags_test.c ...
Checking J2735_internal_DE_VehicleEventFlags_test.c: __GNUC__=1...
27/31 files checked 86% done
Checking J2735_internal_DF_ApproachOrLane_test.c ...
Checking J2735_internal_DF_ApproachOrLane_test.c: __GNUC__=1...
28/31 files checked 89% done
Checking J2735_internal_DF_BSMcoreData_test.c ...
Checking J2735_internal_DF_BSMcoreData_test.c: __GNUC__=1...
29/31 files checked 93% done
Checking J2735_internal_DF_IntersectionReferenceID_test.c ...
Checking J2735_internal_DF_IntersectionReferenceID_test.c: __GNUC__=1...
30/31 files checked 96% done
Checking J2735_internal_DF_PathPrediction_test.c ...
Checking J2735_internal_DF_PathPrediction_test.c: __GNUC__=1...
31/31 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/7] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_run_tests.c.
2400 warnings generated.
[2/7] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_UPER_test.c.
4806 warnings generated.
[3/7] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_internal_DE_VehicleEventFlags_test.c.
7265 warnings generated.
[4/7] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_internal_DF_ApproachOrLane_test.c.
9671 warnings generated.
[5/7] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_internal_DF_BSMcoreData_test.c.
12077 warnings generated.
[6/7] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_internal_DF_IntersectionReferenceID_test.c.
14483 warnings generated.
[7/7] Processing file /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/tests/J2735_internal_DF_PathPrediction_test.c.
16889 warnings generated.
Suppressed 16899 warnings (16889 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_ApproachOrLane_test.o J2735_internal_DF_ApproachOrLane_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_ApproachOrLane_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:419:test_approach_or_lane_approach_typical:PASS
J2735_run_tests.c:420:test_approach_or_lane_lane_typical:PASS
J2735_run_tests.c:423:test_approach_or_lane_approach_boundary_min:PASS
J2735_run_tests.c:424:test_approach_or_lane_approach_boundary_max:PASS
J2735_run_tests.c:427:test_approach_or_lane_lane_boundary_min:PASS
J2735_run_tests.c:428:test_approach_or_lane_lane_boundary_max:PASS
J2735_run_tests.c:431:test_approach_or_lane_misaligned_access:PASS
J2735_run_tests.c:388:test_bsm_core_data_fixed_data:PASS
J2735_run_tests.c:391:test_bsm_core_data_latitude_negative_min:PASS
J2735_run_tests.c:392:test_bsm_core_data_latitude_positive_max:PASS
J2735_run_tests.c:393:test_bsm_core_data_steering_angle_negative:PASS
J2735_run_tests.c:394:test_bsm_core_data_steering_angle_positive_max:PASS
J2735_run_tests.c:397:test_bsm_core_data_misaligned_access:PASS
J2735_run_tests.c:342:test_intersection_reference_id_optional_field_absent:PASS
J2735_run_tests.c:343:test_intersection_reference_id_optional_field_present:PASS
J2735_run_tests.c:346:test_intersection_reference_id_boundary_min:PASS
J2735_run_tests.c:347:test_intersection_reference_id_boundary_max:PASS
J2735_run_tests.c:348:test_intersection_reference_id_absent_region_max_id:PASS
J2735_run_tests.c:351:test_intersection_reference_id_misaligned_access:PASS
J2735_run_tests.c:434:test_path_prediction_no_extension:PASS
J2735_run_tests.c:435:test_path_prediction_with_extension:PASS
J2735_run_tests.c:436:test_path_prediction_signed_negative:PASS
J2735_run_tests.c:439:test_path_prediction_radius_boundary_min:PASS
J2735_run_tests.c:440:test_path_prediction_radius_boundary_max:PASS
J2735_run_tests.c:441:test_path_prediction_radius_zero:PASS
J2735_run_tests.c:444:test_path_prediction_misaligned_access: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

-----------------------
83 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_ApproachOrLane_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:419:test_approach_or_lane_approach_typical:PASS
J2735_run_tests.c:420:test_approach_or_lane_lane_typical:PASS
J2735_run_tests.c:423:test_approach_or_lane_approach_boundary_min:PASS
J2735_run_tests.c:424:test_approach_or_lane_approach_boundary_max:PASS
J2735_run_tests.c:427:test_approach_or_lane_lane_boundary_min:PASS
J2735_run_tests.c:428:test_approach_or_lane_lane_boundary_max:PASS
J2735_run_tests.c:431:test_approach_or_lane_misaligned_access:PASS
J2735_run_tests.c:388:test_bsm_core_data_fixed_data:PASS
J2735_run_tests.c:391:test_bsm_core_data_latitude_negative_min:PASS
J2735_run_tests.c:392:test_bsm_core_data_latitude_positive_max:PASS
J2735_run_tests.c:393:test_bsm_core_data_steering_angle_negative:PASS
J2735_run_tests.c:394:test_bsm_core_data_steering_angle_positive_max:PASS
J2735_run_tests.c:397:test_bsm_core_data_misaligned_access:PASS
J2735_run_tests.c:342:test_intersection_reference_id_optional_field_absent:PASS
J2735_run_tests.c:343:test_intersection_reference_id_optional_field_present:PASS
J2735_run_tests.c:346:test_intersection_reference_id_boundary_min:PASS
J2735_run_tests.c:347:test_intersection_reference_id_boundary_max:PASS
J2735_run_tests.c:348:test_intersection_reference_id_absent_region_max_id:PASS
J2735_run_tests.c:351:test_intersection_reference_id_misaligned_access:PASS
J2735_run_tests.c:434:test_path_prediction_no_extension:PASS
J2735_run_tests.c:435:test_path_prediction_with_extension:PASS
J2735_run_tests.c:436:test_path_prediction_signed_negative:PASS
J2735_run_tests.c:439:test_path_prediction_radius_boundary_min:PASS
J2735_run_tests.c:440:test_path_prediction_radius_boundary_max:PASS
J2735_run_tests.c:441:test_path_prediction_radius_zero:PASS
J2735_run_tests.c:444:test_path_prediction_misaligned_access: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

-----------------------
83 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_ApproachOrLane_test.o J2735_internal_DF_ApproachOrLane_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_ApproachOrLane_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
==3688== Memcheck, a memory error detector
==3688== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==3688== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
==3688== Command: /home/runner/work/J2735-High-Performance-Toolkit/J2735-High-Performance-Toolkit/build/J2735_test_valgrind
==3688== 
J2735_run_tests.c:419:test_approach_or_lane_approach_typical:PASS
J2735_run_tests.c:420:test_approach_or_lane_lane_typical:PASS
J2735_run_tests.c:423:test_approach_or_lane_approach_boundary_min:PASS
J2735_run_tests.c:424:test_approach_or_lane_approach_boundary_max:PASS
J2735_run_tests.c:427:test_approach_or_lane_lane_boundary_min:PASS
J2735_run_tests.c:428:test_approach_or_lane_lane_boundary_max:PASS
J2735_run_tests.c:431:test_approach_or_lane_misaligned_access:PASS
J2735_run_tests.c:388:test_bsm_core_data_fixed_data:PASS
J2735_run_tests.c:391:test_bsm_core_data_latitude_negative_min:PASS
J2735_run_tests.c:392:test_bsm_core_data_latitude_positive_max:PASS
J2735_run_tests.c:393:test_bsm_core_data_steering_angle_negative:PASS
J2735_run_tests.c:394:test_bsm_core_data_steering_angle_positive_max:PASS
J2735_run_tests.c:397:test_bsm_core_data_misaligned_access:PASS
J2735_run_tests.c:342:test_intersection_reference_id_optional_field_absent:PASS
J2735_run_tests.c:343:test_intersection_reference_id_optional_field_present:PASS
J2735_run_tests.c:346:test_intersection_reference_id_boundary_min:PASS
J2735_run_tests.c:347:test_intersection_reference_id_boundary_max:PASS
J2735_run_tests.c:348:test_intersection_reference_id_absent_region_max_id:PASS
J2735_run_tests.c:351:test_intersection_reference_id_misaligned_access:PASS
J2735_run_tests.c:434:test_path_prediction_no_extension:PASS
J2735_run_tests.c:435:test_path_prediction_with_extension:PASS
J2735_run_tests.c:436:test_path_prediction_signed_negative:PASS
J2735_run_tests.c:439:test_path_prediction_radius_boundary_min:PASS
J2735_run_tests.c:440:test_path_prediction_radius_boundary_max:PASS
J2735_run_tests.c:441:test_path_prediction_radius_zero:PASS
J2735_run_tests.c:444:test_path_prediction_misaligned_access: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

-----------------------
83 Tests 0 Failures 0 Ignored 
OK
==3688== 
==3688== HEAP SUMMARY:
==3688==     in use at exit: 0 bytes in 0 blocks
==3688==   total heap usage: 1 allocs, 1 frees, 4,096 bytes allocated
==3688== 
==3688== All heap blocks were freed -- no leaks are possible
==3688== 
==3688== For lists of detected and suppressed errors, rerun with: -s
==3688== 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 19ffb81 into main Feb 20, 2026
22 checks passed
@xqgex xqgex deleted the df_choice branch February 20, 2026 23:22
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.

2 participants