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

vbpf / prevail / 26368619075

24 May 2026 05:57PM UTC coverage: 86.665% (+0.02%) from 86.646%
26368619075

push

github

web-flow
Untangle test-helper string parsing from the production verifier API (#1115)

- Removes the test-helper string layer that had leaked into the production verifier API per #1103.
- `AnalysisResult::is_valid_after` (dead) is removed; the remaining observation methods (`check_observation_at_label`, `is_consistent_before`, `is_consistent_after`) now take `EbpfDomain` instead of `StringInvariant`, so the verifier no longer parses constraint strings.
- `analyze(StringInvariant, …)` is replaced with `analyze(const EbpfDomain&, AnalysisContext)`. Callers pass a pre-built entry domain; the no-entry overload still drives `setup_entry()` itself.
- `EbpfDomain::from_constraints(set<string>, …)` is removed. A structured overload `from_constraints(const ParsedConstraints&, const AnalysisContext&)` replaces it. `ParsedConstraints` (formerly `TypeValueConstraints`) bundles type equalities, type-set restrictions, value constraints, and stack numeric ranges as a single coherent parser output. `setup_constraints` is read from the context rather than passed alongside.
- `src/ir/parse.{hpp,cpp}` and `src/ir/marshal.{hpp,cpp}` move to `src/test/`. The dead `parse_program` is dropped. `StringInvariant`'s printing operators (`+`, `-`, `<<`) move to a new `src/string_constraints.cpp` because they're user-facing output, not test-only parsing. `size(const Instruction&)` moves from `marshal.cpp` to `src/ir/unmarshal.cpp` because `printing.cpp` (production) uses it.
- `src/test/ebpf_yaml.cpp` gains the only bridges that still parse constraint strings, and only from YAML tests: `string_invariant_to_entry_domain` (clears `ZoneDomain::SplitDBM::scratch_` first for cross-run memory hygiene) and `string_invariant_to_observation_domain` (no clear; analysis is done).
---------

Signed-off-by: Elazar Gershuni <elazarg@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

56 of 72 new or added lines in 5 files covered. (77.78%)

1 existing line in 1 file now uncovered.

8910 of 10281 relevant lines covered (86.66%)

6572233.25 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

75.0
/src/string_constraints.cpp


Source Not Available

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