src/testset.jl:1516:
pairs = [(r,c) for (r,c) in zip(roots, cells) if !isempty(c)]
The dispatch at :1509 enters _render_matrix as soon as two or more distinct non-empty cells exist. So in a run where eight shards set PINAX_TEST_MATRIX and one job does not, that job's entire tree -- its pages, its checks, its failures -- is dropped. There is no _diag! and no @warn.
_summary_line(rowsroot) at :1531 is then computed over pairs only, so the overview reports a green N/N that omits a whole shard.
Why this matters
This is the exact failure the feature own comments say it exists to prevent:
ext/PinaxTestShardsExt.jl:8-16
src/testset.jl:1370
A report missing a shard reads as a smaller suite that passed, not as an incomplete run.
Compare _warn_if_undumpable (src/testset.jl:1595), which warns loudly about a single dropped figure, while a dropped shard is silent.
Fix
An empty cell in a matrix render should be an error, or at minimum a diagnostic that reaches the summary line and both faces -- not a filter.
Reported by review; not independently reproduced.
src/testset.jl:1516:The dispatch at
:1509enters_render_matrixas soon as two or more distinct non-empty cells exist. So in a run where eight shards setPINAX_TEST_MATRIXand one job does not, that job's entire tree -- its pages, its checks, its failures -- is dropped. There is no_diag!and no@warn._summary_line(rowsroot)at:1531is then computed overpairsonly, so the overview reports a green N/N that omits a whole shard.Why this matters
This is the exact failure the feature own comments say it exists to prevent:
A report missing a shard reads as a smaller suite that passed, not as an incomplete run.
Compare
_warn_if_undumpable(src/testset.jl:1595), which warns loudly about a single dropped figure, while a dropped shard is silent.Fix
An empty cell in a matrix render should be an error, or at minimum a diagnostic that reaches the summary line and both faces -- not a filter.
Reported by review; not independently reproduced.