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

valkyrjaio / valkyrja-php / 30507566027
100%

Build:
DEFAULT BRANCH: 26.x
Ran 30 Jul 2026 02:08AM UTC
Jobs 1
Files 1138
Run time 2min
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

30 Jul 2026 02:07AM UTC coverage: 100.0%. Remained the same
30507566027

push

github

web-flow
[CI] Recompute merged coverage from the shard files (#955)

# Description

`path-coverage-shards.sh` reported **19 missing branches across 4 files
that are each at 100%**. Every
one was an artifact of the merge, not uncovered code.
`REQUIRE_BRANCH=100` could therefore never pass,
no matter how good the tests were — which matters because that harness
is the only branch-coverage
check this repo has (`phpunit-coverage` is line-only by design here).

## Root cause

Xdebug identifies a function's basic blocks by **opcode offset**, and it
builds a *different*
numbering depending on whether that function ran in the process doing
the recording. `phpcov merge`
keys branch data on those offsets, so merging a shard that executed a
function with one that merely
autoloaded it unions two incompatible maps.

Same method, same line ranges, different ids:

```
Application  #0(L191-194)=0 #5(L195-195)=0 #8(L196-196)=0 #10(L196-197)=0
Functional   #0(L191-194)=0 #5(L195-195)=0 #8(L196-196)=0 #10(L196-197)=0
Http         #0(L191-194)=1 #5(L195-195)=1 #7(L196-196)=1 #8(L196-197)=1
merged       #0(L191-194)=1 #5(L195-195)=1 #8(L196-196)=1 #10(L196-197)=0 #7(L196-196)=1
```

Note `#8` means `L196-196` under one numbering and `L196-197` under the
other. The merge inflates the
**executable** count, not just the hits — `Processor.php` went from 43
executable branches to 52 —
and it also hits *partially* executing shards, so simply dropping
never-executed records does not help
(the `Http` shard's 4/24 view of `Api.php` merged with `Api`'s 24/24
gives 24/**28**).

Built per shard, all four flagged files are clean:

```
Http  Processor/Processor.php                43/43
Http  Request/Request.php                    32/32
Api   Manager/Api.php                        24/24
Cli   Provider/CliServerServiceProvider.php  22/22
```

The line totals were wrong the same way, by one executable line per
file, for the same reason.

## Fix

The line range Xdebug reports for a block is identica... (continued)

12596 of 12596 relevant lines covered (100.0%)

23.75 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30507566027.1 30 Jul 2026 02:08AM UTC 1138
100.0
GitHub Action Run
Source Files on build 30507566027
  • Tree
  • List 1138
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30507566027
  • 0dc31052 on github
  • Prev Build on 26.x (#30423393633)
  • Next Build on 26.x (#30512663903)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc