Skip to content

test(adapters): cover POSIX adapter with PTYs (layer 6) - #57

Merged
petesramek merged 1 commit into
petesramek-transport-loss-lifecycle-d18from
petesramek-posix-adapter-coverage-fff
Oct 28, 2026
Merged

petesramek merged 1 commit into
petesramek-transport-loss-lifecycle-d18from
petesramek-posix-adapter-coverage-fff

Conversation

@petesramek

Copy link
Copy Markdown
Owner

Description

Layer 6 of the TinyLink remediation: focused Linux PTY coverage for TinyPosixAdapter, stacked on layer 5 (#56). No production code or API changes; no syscall overrides.

Closes #

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

Files: test/test_adapter_posix/test_main.cpp (new), CHANGELOG.md, test/README.md.

Tests (17): testInvalidPathsLeaveAdapterClosedAndLeakNothing, testClosedAdapterWritesReportFailureOrZeroLength, testNonTerminalDeviceFailsConfigurationAndClosesDescriptor, testUnsupportedSpeedFailsConfigurationAndClosesDescriptor, testOpenConfiguresRaw8N1WithoutFlowControlAndNonblocking, testDefaultSpeedIs9600, testDestructorClosesOwnedDescriptor, testReadsReturnQueuedBytesInOrderWithoutBlocking, testReadReportsNoByteAfterPeerCloses, testSingleByteWriteIsCompleteAndReachesPeer, testBufferWriteIsCompleteAndPreservesRawBytes, testZeroLengthWriteDoesNoIo, testNonemptyNullBufferFailsWithoutIo, testOversizedNonblockingWriteIsPartialAndNotRetried, testWriteToFullQueueFailsInsteadOfBlocking, testWriteAfterPeerClosesFails, testMillisIsMonotonicAndTracksElapsedTime. Compile-time: non-copyability and is_valid_adapter.

Commands (Windows host):

  • pio test -e native: 125 cases, 124 passed, 1 skipped (the POSIX suite compiles to one ignored test under _WIN32).
  • python tools/compile_contract/check.py: PASS.
  • git diff --check: clean.

Limitation: Linux PTY execution could NOT be validated locally (Windows host, no Linux runtime). It runs, with no skips, in the existing Linux test_native CI job (pio test -e native); CI is the validation evidence.

API/behavior changes: none.

Screenshots / Logs (if applicable)

N/A

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 02db9ca 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-posix-adapter-coverage-fff 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