• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Alan-Jowett / sonde / 23459951123
81%

Build:
DEFAULT BRANCH: main
Ran 23 Mar 2026 09:04PM UTC
Jobs 1
Files 74
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Mar 2026 09:01PM UTC coverage: 85.575% (+0.3%) from 85.259%
23459951123

push

github

web-flow
test(node): add protocol robustness and lifecycle tests (6 gaps) (#413)

* test(node): add protocol robustness and lifecycle tests (6 gaps)

Add 10 tests covering the 6 validation gaps identified in issue #355:

1. ND-0101 AC2 — CBOR forward compatibility: verify node ignores
   unknown CBOR keys in inbound COMMAND messages.

2. ND-0103 — \send_recv()\ frame size enforcement: verify
   \send_recv_app_data()\ rejects oversized blobs (matching
   \send_app_data()\ behavior) and accepts max-size blobs.

3. ND-0303 — Sequence number reset across sleep: verify two
   consecutive wake cycles use independent \starting_seq\ values
   from the gateway with no carryover.

4. ND-0203 — Base interval restore after \set_next_wake()\: full
   e2e test using a custom BPF interpreter mock that calls
   \helper_set_next_wake(10)\ in cycle 1 (sleeps 10s) and omits
   the call in cycle 2 (restores to 300s base).

5. ND-0801 AC2 — Wrong \msg_type\ for expected context: test
   COMMAND-when-CHUNK-expected (chunked transfer) and
   CHUNK-when-APP_DATA_REPLY-expected (\send_recv\).

6. ND-0702 — Response timeout (50 ms): assert the constant, test
   deadline expiry with an advancing clock mock, and verify
   WAKE/COMMAND retry on timeout.

Closes #355

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

* fix: correct MockRng comment per review feedback

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

* fix: test CBOR overhead boundary for oversized blob rejection

Use a 204-byte blob (CBOR-encoded size 208 > MAX_PAYLOAD_SIZE 207) to
exercise the post-encoding size check rather than just the fast
pre-check triggered by MAX_PAYLOAD_SIZE + 1.

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

* fix: derive blob boundary dynamically, fresh MapStorage, assert WAKE/GET_CHUNK

- Derive max blob size dynamically via trial encoding instead of
  hard-coding CBOR overhead assumptions (203/204 bytes).
- Create fresh \MapStora... (continued)

447 of 449 new or added lines in 1 file covered. (99.55%)

20377 of 23812 relevant lines covered (85.57%)

171.52 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
96.42
0.85% crates/sonde-node/src/wake_cycle.rs
Jobs
ID Job ID Ran Files Coverage
1 23459951123.1 23 Mar 2026 09:04PM UTC 74
85.57
GitHub Action Run
Source Files on build 23459951123
  • Tree
  • List 74
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23459951123
  • d35c5882 on github
  • Prev Build on main (#23459345791)
  • Next Build on main (#23460374229)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc