Skip to content

[go-LIN-02] Diagnostics round-trip test never asserts checksum type, masking the 0x3C/0x3D checksum bug #64

Description

@SoundMatt

Location

master/master_test.go, TestDiagnostics_requestResponseRoundTrip (around lines 339-376); also related coverage in diagnostic_test.go.

Finding

The round-trip test registers the 0x3D response through bus.Publish(lin.LINDiagResponseID, respFrame.Data) — the same enhanced-checksum path described in the companion checksum-type bug — and then only asserts on NAD, RSID, and Data equality. It never inspects the transmitted frame's ChecksumType or Checksum value. As a result the test passes even though the frame it exercises carries the wrong checksum type for a diagnostic frame, so this test currently gives false assurance for the checksum-related safety goal in the HARA. I confirmed this is still the case at current HEAD (commit 7c03bdd): no test in the package checks that a frame emitted on 0x3C or 0x3D carries the classic checksum type.

Recommendation

Add assertions that the transmitted request and response frames both have ChecksumType == lin.ClassicChecksum, and that the checksum byte matches the expected classic-checksum computation for that data. This should be tightened alongside the fix for the underlying checksum-type bug so the test actually catches a regression.

Filed from the 2026-07-29 ecosystem audit register; independently re-verified against current HEAD before filing.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions