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

vbpf / prevail / 24616572414
86%

Build:
DEFAULT BRANCH: main
Ran 18 Apr 2026 11:56PM UTC
Jobs 2
Files 106
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

18 Apr 2026 11:46PM UTC coverage: 89.017% (-0.005%) from 89.022%
24616572414

push

github

web-flow
Remove thread_local_program_info; make Program self-contained (#1091)

* Thread EbpfProgramType and map cache through explicit parameters

Replace thread_local_program_info reads in platform helper functions
with explicit const EbpfProgramType& parameters on is_helper_usable,
get_helper_prototype, make_call, and parse_instruction. This removes
the implicit dependency on ambient thread-local state from the
platform layer and instruction parsing.

Change Program::from_sequence to take ProgramInfo& (non-const) so
callback targets are computed directly on the caller's ProgramInfo
rather than through the thread-local copy.

Move the map equivalence cache from ProgramInfo into a local variable
in parse_maps_section_linux, passed explicitly through create_map_linux
and create_map_crab. This fixes a pre-existing test-ordering bug where
stale cache entries from a previous test caused FD number mismatches.

* Thread ProgramInfo through get_map_descriptor platform function

Add const ProgramInfo& parameter to ebpf_get_map_descriptor_fn and
make it return const EbpfMapDescriptor&. Update find_map_descriptor,
get_map_descriptor_linux, and the test platform implementation.

Change EbpfDomain map query methods (get_map_type, get_map_key_size,
get_map_value_size, get_map_inner_map_fd, get_map_max_entries) to take
const AnalysisContext& instead of const ebpf_platform_t&, since they
now need both platform and program_info for map descriptor lookup.

This eliminates thread_local_program_info from elf_loader.cpp entirely.

* Store ProgramInfo in Program; remove thread_local_program_info (#1082)

Program now owns its ProgramInfo, populated by from_sequence. The
analyze(prog) shims construct AnalysisContext from prog.info() and
thread_local_options, eliminating all reads of thread_local_program_info.

Add explicit AnalysisContext parameter to AnalysisResult methods
(is_valid_after, check_observation_at_label, compute_failure_slices)
and const Program& to print_error for li... (continued)

139 of 153 new or added lines in 19 files covered. (90.85%)

8 existing lines in 5 files now uncovered.

13414 of 15069 relevant lines covered (89.02%)

4477329.41 hits per line

Uncovered Changes

Lines Coverage ∆ File
7
76.15
-0.38% src/result.cpp
4
81.99
1.34% src/crab/ebpf_domain.cpp
1
89.8
0.7% src/crab/ebpf_checker.cpp
1
94.01
-1.02% src/fwd_analyzer.cpp
1
57.71
0.08% src/printing.cpp

Coverage Regressions

Lines Coverage ∆ File
3
84.83
-0.57% src/linux/linux_platform.cpp
2
57.71
0.08% src/printing.cpp
1
81.99
1.34% src/crab/ebpf_domain.cpp
1
94.01
-1.02% src/fwd_analyzer.cpp
1
90.91
-0.27% src/test/test_verify_multithreading.cpp
Jobs
ID Job ID Ran Files Coverage
1 run-Debug - 24616572414.1 19 Apr 2026 12:49AM UTC 106
87.27
GitHub Action Run
2 run-Release - 24616572414.2 18 Apr 2026 11:56PM UTC 106
88.22
GitHub Action Run
Source Files on build 24616572414
  • Tree
  • List 106
  • Changed 23
  • Source Changed 0
  • Coverage Changed 23
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 4465b3f0 on github
  • Prev Build on main (#24611175455)
  • Next Build on main (#24624911959)
  • 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