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

prisma-risk / tsoracle / 26195519507
95%

Build:
DEFAULT BRANCH: main
Ran 20 May 2026 11:18PM UTC
Jobs 1
Files 23
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

20 May 2026 11:16PM UTC coverage: 91.525% (+0.04%) from 91.481%
26195519507

push

github

web-flow
feat(fuzz): add coverage-guided fuzz testing (#16)

* refactor(driver-file): make the record module public

The record module's encode, decode, RECORD_LEN, and RecordError surface
are already declared pub within the module; widening the module itself
to pub lets external crates call into the canonical serializer. Needed
by the upcoming fuzz crate, which is an external consumer.

No behavior change, no new symbols.

* feat(driver-file): reject decoded records with trailing bytes

decode previously read only bytes[0..17] and silently ignored anything
past byte 17. A corrupt state file (extra trailing bytes from a partial
write, disk corruption, or a previous version that wrote differently)
would silently truncate at FileDriver::open_or_init startup.

Add a new RecordError::TrailingBytes { len } variant and a guard at the
top of decode: if bytes.len() > RECORD_LEN, return that error. The
predicate is > RECORD_LEN (not !=) deliberately, so that inputs shorter
than RECORD_LEN continue to produce the existing TooShort variant from
read_array rather than being clobbered. The two variants are symmetric:
TooShort for len < RECORD_LEN, TrailingBytes for len > RECORD_LEN.

Surfacing this implicit contract was motivated by the upcoming
record_roundtrip fuzz target, whose reverse-direction invariant requires
the decoder to accept only what the encoder produces.

* build(fuzz): scaffold standalone fuzz crate with pinned nightly

cargo-fuzz harnesses use #![no_main] and require nightly Rust, so the
fuzz crate lives outside the workspace with its own pinned toolchain.
This commit only sets up the scaffold; fuzz targets land in subsequent
commits.

Notable choices:

- fuzz/Cargo.toml has an empty [workspace] table to mark itself as its
  own workspace root. The parent's Cargo.toml also gets exclude = ["fuzz"]
  because cargo's manifest-validation pass still parses every Cargo.toml
  under the tree regardless of workspace boundaries.

- An empty fuzz/src/lib.rs is adde... (continued)

10 of 10 new or added lines in 1 file covered. (100.0%)

1771 of 1935 relevant lines covered (91.52%)

276735.02 hits per line

Jobs
ID Job ID Ran Files Coverage
1 26195519507.1 20 May 2026 11:18PM UTC 23
91.52
GitHub Action Run
Source Files on build 26195519507
  • Tree
  • List 23
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26195519507
  • 98ffccdc on github
  • Prev Build on main (#26194020874)
  • Next Build on main (#26202009235)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc