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

floatdrop / moq-go / 31727371319
89%

Build:
DEFAULT BRANCH: draft-19
Ran 13 Aug 2026 05:47PM UTC
Jobs 1
Files 101
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

13 Aug 2026 05:46PM UTC coverage: 88.535% (+0.2%) from 88.352%
31727371319

push

github

web-flow
test(relay): pin gap-vs-unknown in the stitched FETCH path (#78)

The §9.4 stitching path decides whether a hole in a FETCH response means
"these objects do not exist" or "this relay could not find out". Both are
well-formed wire output and neither logs anything, so encoding the second as
the first tells a subscriber that fetchable content is permanently gone — a
§9.1 plain gap asserts non-existence, a §11.4.4.2 End of Unknown Range marker
(0x10C) says undetermined and retryable.

Two subtests, identical topology, differing only in how the upstream ends its
FETCH response:

  - clean FIN with zero objects -> plain gap (the upstream authoritatively
    asserted the sub-range empty);
  - reset mid-response -> the whole sub-range degrades to unknown, and the one
    object that did arrive before the reset must be discarded, because keeping
    it would turn the rest of the range into an implicit gap.

Both branches confirmed to execute (they were unreached before) and both
verified by mutation: returning the partial response instead of unknownWhole
fails the second, and declaring an empty response unknown fails the first.

That mutation pass also found the obvious-looking guard is not the one that
matters. Deleting `if len(upstreamObjs) == 0 { return cacheObjs }` from
stitchedFetchObjects changes nothing observable — merging an empty upstream
slice with the cached one yields the cached one, so it is a shortcut past the
merge rather than a decision, the same redundancy e775b12 found in the joining
FETCH guard. The real decision is in fetchUpstreamRange. Recorded in the test's
doc comment so the next reader does not mistake the shortcut for the contract.

Also adds a table test for upstreamFetchElemOK, the guard that decides whether
one element of an upstream response may be re-serialized downstream. Every
element it accepts is re-encoded into a §11.4.4 delta stream, so accepting one
that moves the wrong way does not produce a broken response — it produces... (continued)

9197 of 10388 relevant lines covered (88.53%)

2.01 hits per line

Jobs
ID Job ID Ran Files Coverage
1 31727371319.1 13 Aug 2026 05:47PM UTC 101
88.53
GitHub Action Run
Source Files on build 31727371319
  • Tree
  • List 101
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #31727371319
  • a09e52eb on github
  • Prev Build on draft-19 (#31727022073)
  • Next Build on draft-19 (#31728506563)
  • Delete
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