test(verify): report uneven coverage instead of failing on it
Same mistake as the source-fallback share. The packages a non-primary minor lacks are ABI-risky ones built under the slot's primary minor, which a client on another minor cannot safely load: their absence is correct, not a defect. Failing on it blocked resolute and alpine324 on both arches while they regressed nobody. Parity gates the claim we make about coverage; MAX_REGRESSIONS gates whether routing is safe to enable. Only the second belongs in the exit code.
This commit is contained in:
parent
a3004695a7
commit
ed131e19fa
1 changed files with 9 additions and 5 deletions
|
|
@ -43,10 +43,13 @@ MINORS=${MINORS:-"4.4 4.5 4.6"}
|
||||||
EXCLUDED_MINORS=${EXCLUDED_MINORS:-"4.3"}
|
EXCLUDED_MINORS=${EXCLUDED_MINORS:-"4.3"}
|
||||||
# How many Path: targets to HEAD-check per slot/minor. 0 disables.
|
# How many Path: targets to HEAD-check per slot/minor. 0 disables.
|
||||||
SAMPLE=${SAMPLE:-5}
|
SAMPLE=${SAMPLE:-5}
|
||||||
# Largest package-count shortfall a non-primary minor may have against the best
|
# Package-count shortfall against the best minor on the same slot, above which
|
||||||
# minor on the same slot before coverage counts as uneven. A slot built under
|
# coverage is reported as uneven. Reported, not failed on: the packages a
|
||||||
# one R minor carries fewer per-minor binaries for the others; until that gap
|
# non-primary minor lacks are ABI-risky ones built under the primary minor,
|
||||||
# closes, "full coverage for ABI-sensitive packages" is not a claim we can make.
|
# which a client on another minor cannot safely load anyway, so their absence
|
||||||
|
# is correct. This gates the *claim* ("full coverage for ABI-sensitive
|
||||||
|
# packages"), not whether routing is safe to enable - MAX_REGRESSIONS does
|
||||||
|
# that.
|
||||||
PARITY_TOLERANCE=${PARITY_TOLERANCE:-25}
|
PARITY_TOLERANCE=${PARITY_TOLERANCE:-25}
|
||||||
# Source fallbacks are reported, not failed on. Since bincraft learned to keep
|
# Source fallbacks are reported, not failed on. Since bincraft learned to keep
|
||||||
# a matching-minor generic binary out of a fallback's shadow, a remaining
|
# a matching-minor generic binary out of a fallback's shadow, a remaining
|
||||||
|
|
@ -299,7 +302,8 @@ for arch in $ARCHES; do
|
||||||
[ "$gap" -gt "$PARITY_TOLERANCE" ] && uneven="$uneven R$minor:-$gap"
|
[ "$gap" -gt "$PARITY_TOLERANCE" ] && uneven="$uneven R$minor:-$gap"
|
||||||
done
|
done
|
||||||
if [ -n "$uneven" ]; then
|
if [ -n "$uneven" ]; then
|
||||||
bad "$slot coverage uneven across minors (vs best $best):$uneven"
|
printf ' note: %s coverage uneven across minors (vs best %s):%s\n' \
|
||||||
|
"$slot" "$best" "$uneven"
|
||||||
else
|
else
|
||||||
ok "$slot coverage parity across minors (best $best, all within $PARITY_TOLERANCE)"
|
ok "$slot coverage parity across minors (best $best, all within $PARITY_TOLERANCE)"
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue