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

vbpf / prevail / 24885662803
86%

Build:
DEFAULT BRANCH: main
Ran 24 Apr 2026 10:58AM UTC
Jobs 2
Files 108
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

24 Apr 2026 10:49AM UTC coverage: 89.245% (+0.03%) from 89.214%
24885662803

push

github

web-flow
Split PlatformSpec from ProgramEnvironment (#1080) (#1096)

Fixes #1080.

Splits the immutable platform specification from the per-program environment, then follows the chain of subsequent simplifications that fall out naturally. After this PR, `ebpf_platform_t` is a pure PlatformSpec (already was, but no longer reaches into `ProgramInfo`); `ProgramInfo` holds only loader output; `Program` carries its own analysis-prep facts; `AnalysisContext` owns the `Program` so analyses never need a paired-parameter convention.

## Summary of changes

- **Platform ABI no longer touches `ProgramInfo`.** `resolve_kfunc_call` now takes `const EbpfProgramType&` (instead of `const ProgramInfo*`); `get_map_descriptor` takes the descriptor vector. After these changes `platform.hpp` contains zero references to `ProgramInfo`. Dead `find_map_descriptor` helper removed.
- **Callback metadata moves off `ProgramInfo` onto `Program`.** `callback_target_labels` and `callback_targets_with_exit` are CFG-derived, populated by `Program::from_sequence`, and meaningless on a bare `ProgramInfo` — they belong on `Program`. Writes go through a new `CfgBuilder::set_callback_metadata` (CfgBuilder is the friend authorised to mutate Program's private state). Removes the `ProgramInfo mutable_info = info; … std::move(mutable_info)` dance in `from_sequence` and the latent drift it hid.
- **`AnalysisContext` owns `Program` and options.** Previously four references bundled by convention — now a single owning struct. `program_info()` and `platform()` are accessor methods derived from `program.info()`, so `context.program_info` can no longer disagree with `context.program.info()`. `platform()` asserts non-null. Two helpers (`map_descriptor(fd)`, `is_helper_usable(id)`) hide common reach-through patterns from call sites. `Program::from_sequence` now populates `m_info` up front so any future pass that reads `builder.prog.info()` sees real data.
- **Analysis entry points drop the redundant `Program` p... (continued)

182 of 190 new or added lines in 17 files covered. (95.79%)

13683 of 15332 relevant lines covered (89.24%)

4404281.04 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
93.07
2.16% src/test/test_verify_multithreading.cpp
2
75.46
0.06% src/test/ebpf_yaml.cpp
1
89.8
0.0% src/crab/ebpf_checker.cpp
1
81.99
0.0% src/crab/ebpf_domain.cpp
Jobs
ID Job ID Ran Files Coverage
1 run-Debug - 24885662803.1 24 Apr 2026 11:59AM UTC 108
87.54
GitHub Action Run
2 run-Release - 24885662803.2 24 Apr 2026 10:58AM UTC 108
88.45
GitHub Action Run
Source Files on build 24885662803
  • Tree
  • List 108
  • Changed 16
  • Source Changed 0
  • Coverage Changed 16
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 6bbb5989 on github
  • Prev Build on main (#24861555409)
  • Next Build on main (#24936469119)
  • Delete
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