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

eosrio / rs-abieos / 26132129233
30%

Build:
DEFAULT BRANCH: master
Ran 19 May 2026 11:47PM UTC
Jobs 1
Files 12
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

19 May 2026 08:15PM UTC coverage: 26.867% (-4.1%) from 30.995%
26132129233

push

github

igorls
feat(rust-backend): Milestone 8 — fuzz & property testing + robustness fixes

Adds the Milestone 8 fuzz/property layer and folds in the in-progress
optimization-campaign working tree (module split, FNV/IStr/SWAR, single-pass
ABI-JSON parser, BENCHMARKS) so the port history stays continuous.

Milestone 8:
- tests/rust_backend_fuzz_property.rs: dependency-free seeded (SplitMix64)
  property/fuzz suite — no-panic fuzz for json<->bin / abi-json<->bin /
  malformed hex/key-sig/asset-time, round-trip stability, recursion limits
  (type-spec depth 32, JSON depth 128), duplicate/reordered fields. Failures
  reproduce from a printed (seed, iteration) pair.
- fuzz/: cargo-fuzz / libFuzzer harness (separate package, own [workspace],
  nightly-only) with 4 targets; fuzz/Cargo.lock committed for reproducibility.
- CI policy: ci.yml `fuzz-smoke` job (20k iters, fixed + run-varying seed);
  .github/workflows/fuzz.yml weekly/manual deep fuzz with crash-artifact
  upload. Documented in FUZZING.md.

Two robustness bugs found by the suite and fixed:
- Interior-NUL panic: every CString::new(...).unwrap() in src/lib.rs panicked
  the process on caller input containing a NUL byte. All 17 sites now return
  the function's existing AbieosError variant (no public enum change).
- Unbounded-allocation abort (security): read_vec in abi_def.rs pre-allocated
  Vec::with_capacity(len) for an untrusted varuint32; a crafted ABI length
  requested ~182 GiB and aborted via SIGABRT. Now bounded by remaining input
  (len.min(r.remaining())); pinned by regression_abi_bin_unbounded_alloc.

Validated: full rust-backend + default cpp-backend suites pass; 100k-iter
property/fuzz pass clean in ~1.6s. Tracker M8 complete; CHANGELOG updated.

34 of 226 new or added lines in 8 files covered. (15.04%)

1 existing line in 1 file now uncovered.

259 of 964 relevant lines covered (26.87%)

279.82 hits per line

Uncovered Changes

Lines Coverage ∆ File
127
0.0
0.0% src/backend/rust/json.rs
29
0.0
src/backend/rust/istr.rs
14
0.0
src/backend/rust/fnv.rs
10
0.0
src/backend/rust/swar.rs
6
0.0
src/backend/rust/abi_json.rs
5
0.0
0.0% src/backend/rust/stream.rs
1
0.0
0.0% src/backend/rust/abi_def.rs

Coverage Regressions

Lines Coverage ∆ File
1
0.0
0.0% src/backend/rust/json.rs
Jobs
ID Job ID Ran Files Coverage
1 26132129233.1 19 May 2026 11:47PM UTC 12
26.87
GitHub Action Run
Source Files on build 26132129233
  • Tree
  • List 12
  • Changed 5
  • Source Changed 5
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26132129233
  • 940c6a7a on github
  • Prev Build on master (#26075309438)
  • Next Build on master (#26138694979)
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