Skip to content

Relocate shared engine source and expand protocol tests#24

Merged
masarray merged 19 commits into
mainfrom
agent/p2-engine-relocation-tests
Jul 12, 2026
Merged

Relocate shared engine source and expand protocol tests#24
masarray merged 19 commits into
mainfrom
agent/p2-engine-relocation-tests

Conversation

@masarray

@masarray masarray commented Jul 12, 2026

Copy link
Copy Markdown
Owner

Purpose

Complete the remaining P2 architecture and coverage work by moving the shared IEC 61850 engine source physically under src/ARSVIN.Engine, expanding deterministic regression tests, and raising enforced coverage baselines.

Completed changes

Physical shared-engine ownership

  • Moved 180 tracked engine source files from src/ARSVIN/Engine into src/ARSVIN.Engine using git mv.
  • Removed the external wildcard compile-link from ARSVIN.Engine.csproj.
  • Removed the Publisher-side Compile Remove workaround.
  • Publisher, Subscriber, and Tests continue to reference one compiled ARSVIN.Engine assembly.
  • Removed the temporary inventory/relocation workflow before review.

Expanded deterministic regression tests

  • Increased the test suite from 26 to 54 tests.
  • Added SCL stream, address, report-control, warning, and file-loading tests.
  • Added COMTRADE ASCII parsing, scaling, timestamp fallback, indexing, and unsupported-format tests.
  • Added PCAP read/write round-trip and malformed-input tests.
  • Added MMS data codec and object-reference tests.
  • Added diagnostics HexDump tests.
  • Added Sampled Values publisher-session counter, batching, API-guard, and wrap tests.

Protocol fix discovered by the tests

  • Multi-ASDU Publisher sessions now apply the configured smpCnt wrap to every ASDU within the frame.
  • A 4,000-sample wrap now emits 3998, 3999, 0, 1 rather than 3998, 3999, 4000, 4001.

Raised coverage gates

  • Whole-engine coverage: 1,691 of 15,742 lines, 10.74%.
  • Whole-engine regression floor raised to 10.5%.
  • Protocol-core coverage: 1,007 of 1,550 lines, 64.97%.
  • Protocol-core regression floor raised to 60%.
  • README, build guidance, repository structure, and changelog now match the relocated source and measured baselines.

Validation completed

  • Locked dependency restore: success.
  • Public-site generation and recursive validation: success.
  • Publisher warning-free build: success.
  • Subscriber warning-free build: success.
  • 54 tests: success.
  • Whole-engine 10.5% coverage gate: success.
  • Protocol-core 60% coverage gate: success.
  • Publisher and Subscriber vulnerability reports: success.
  • Full-solution CodeQL: success.
  • Portable Publisher and Subscriber publish: success.
  • Inno Setup installer compilation: success.
  • CycloneDX SBOM validation: success.
  • Silent installer and uninstaller smoke tests: success.
  • SHA-256 checksum generation: success.
  • Public release job on the PR: correctly skipped.

Validated private artifact: ARSVIN-0.0.0-pr.72-windows-x64, digest sha256:62819271b6089a620050f9d54ae780050091bceb373a2867b6b3a6106af2d832.

No public GitHub Release is created by this pull request.

@masarray
masarray marked this pull request as ready for review July 12, 2026 12:31
@masarray
masarray merged commit f8bd013 into main Jul 12, 2026
5 checks passed
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