Skip to content

test: organize suites by responsibility and split TinyLink tests (layer 7) - #58

Merged
petesramek merged 1 commit into
petesramek-posix-adapter-coverage-ffffrom
petesramek-test-suite-organization
Oct 28, 2026
Merged

petesramek merged 1 commit into
petesramek-posix-adapter-coverage-ffffrom
petesramek-test-suite-organization

Conversation

@petesramek

Copy link
Copy Markdown
Owner

Description

Layer 7 of the TinyLink remediation sequence (stacked on #57). Test-only reorganization; no production code changes.

  • Suites moved to test/suites/ with names mirroring production responsibility (test_adapters_*, test_internal_codec_*, test_protocol_*, test_engine_tinylink); platformio.ini sets test_dir = test/suites.
  • Platform stubs isolated under test/support/stubs/{arduino,espidf,stm32,windows}; fake adapter/helpers under test/support/tinylink.
  • The 58-test TinyLink suite split into lifecycle, application, ACK/sequence, receive/mailbox, timeout, overflow/recovery, logging, and telemetry files with one Unity runner and a shared fixture. Test bodies are unchanged.
  • Compile-contract fixtures updated to the new FakeAdapter.h path; test/README.md and CHANGELOG.md updated.

Closes N/A (no issue)

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 not work as expected)
  • Documentation update
  • Refactor / code quality improvement
  • CI / build / tooling change

Checklist

  • I have read the Contributing Guidelines.
  • My branch is up-to-date with the target branch.
  • My changes compile without errors or warnings on the affected platform(s).
  • I have added or updated tests to cover my changes.
  • All existing tests pass (pio test -e native).
  • I have updated relevant documentation (README, inline comments, etc.).
  • My commit messages follow the Conventional Commits format.
  • I have added a CHANGELOG.md entry under [Unreleased].

Testing Done

Windows host, PlatformIO native (Unity):

  • pio test --list-tests -e native → Collected 12 tests (each suite once).
  • pio test -e native → 125 test cases: 1 skipped, 124 succeeded (the skip is the Windows-only POSIX placeholder).
  • python tools/compile_contract/check.py → 3/3 PASS.
  • git diff --check → clean.
  • Registration comparison against the base commit: 142 RUN_TEST names before and after, identical multiset, no missing or duplicate (includes 17 Linux-only POSIX PTY tests + 1 Windows placeholder; 58 TinyLink tests).

Linux counts (17 PTY tests → 141 outcomes expected) are derived from registrations, not run locally; Linux CI is the evidence.

Screenshots / Logs (if applicable)

Changed: CHANGELOG.md, platformio.ini, test/README.md, tools/compile_contract/payload_*.cpp (3), 11 suite test_main.cpp renames, 5 stub renames, 2 support-helper renames, new test/support/tinylink/TinyLinkTestFixture.h, new TinyLink split files (8 behavior files + TinyLinkTestFixture.cpp + runner).

Move suites to test/suites, isolate platform stubs under test/support/stubs, and split the TinyLink suite into behavior files. All 142 registrations preserved.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@petesramek
petesramek added this pull request to stack #61 October 28, 2026 14:42
@petesramek
petesramek merged commit adbffa9 into remedation Oct 28, 2026
4 checks passed
petesramek added a commit that referenced this pull request Oct 28, 2026
#62)

* status.h replaced with ackresult

* ackmessage rewritten

* updated ackmessage

* added telemetryevent.h

* updated stats.h

* updated stats.h

* updated messagetype.h

* updated version.h

* updated handshakemessage.h

* update logmessage.h

* update loglevel

* updated state.h

* updated fletche16.h

* update cobscodec.h

* updated packet.h

* removed packed.h

* rtemoved duplicate code

* updated tinylink.h

* updated adapters

* removed plan folder

* added skills

* removed tests

* test: add native Fletcher-16 suite (#32)

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* test: add comprehensive TinyLink native suite (#33)

* test: add native Fletcher-16 suite

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* test: add comprehensive TinyLink native suite

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* test: cover remaining native components (#34)

* test: add native Fletcher-16 suite

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* test: add comprehensive TinyLink native suite

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* test: cover remaining native components

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* readme

* switch prompt and result order

* merged src structure with large project flat structure issue.

* updated model

* feat(adapter): report transport write results (#52)

Add a shared result type and propagate accepted-byte counts from all built-in adapters. Expand native adapter stubs and tests for complete, partial, failed, and zero-length writes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* feat(engine): handle transport write results (#53)

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* feat(engine): require trivially copyable payloads (#54)

Enforce trivially copyable payload types on all toolchains including AVR, document opaque-byte portability limits, and add compile-contract checks.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix: saturating engine telemetry and ACK sequence validity (layer 4) (#55)

* Saturate engine telemetry and validate ACK sequence

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* docs: changelog for stats saturation and ACK validity

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix(lifecycle): recover from transport loss (#56)

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* test(adapters): cover POSIX adapter with PTYs (#57)

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* test: organize suites by responsibility and split TinyLink tests (#58)

Move suites to test/suites, isolate platform stubs under test/support/stubs, and split the TinyLink suite into behavior files. All 142 registrations preserved.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* test: document infrastructure and improve loop assertion diagnostics (#59)

* test: document infrastructure and improve loop assertion diagnostics

Document test helpers, platform stubs, compile-contract probes and capacity
assumptions. Loop-based assertions now report the failing index, length or
value via TEST_ASSERT_*_MESSAGE and a diag() helper.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* build(test): enforce strict native warnings and add sanitizer CI (#60)

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* removed cod etesting skill

* bumped version to 0.5.0

* fix: reconcile remedation merge with main duplicates (#63)

Restore the verified stacked implementation (src, tests, tools, CI) where the
main merge left duplicate TinyWriteResult/test files and broken TinyLink.h.
Drop duplicate README write-result section and obsolete scripts/ probe.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@petesramek
petesramek deleted the petesramek-test-suite-organization branch October 28, 2026 15:20
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