Skip to content

test(conformance): enforce SPARKLINE's fixture coverage again - #773

Merged
hhimanshu merged 1 commit into
mainfrom
chore/766-enforce-sparkline-coverage
Jul 28, 2026
Merged

test(conformance): enforce SPARKLINE's fixture coverage again#773
hhimanshu merged 1 commit into
mainfrom
chore/766-enforce-sparkline-coverage

Conversation

@hhimanshu

@hhimanshu hhimanshu commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Third and last PR of the #766 sequence, after #770 (code) and #772 (rows).

Summary

Removes SPARKLINE from pending_fixture_verification, so every_registered_function_has_conformance_coverage enforces it like any other function.

Why this is not bookkeeping

An entry in that set is not a note-to-self — it is a permanent hole in the coverage guard, and the function it names is precisely the one nobody would notice losing coverage. Left in place, SPARKLINE would have been exempt from the guard forever, three PRs after the reason expired.

QUERY is a legitimate long-term entry: its rows genuinely do not exist yet. SPARKLINE's did, and were two PRs away.

Why the exemption was needed at all

Two CI rules deadlock for any new function:

  • the coverage guard wants fixture rows before the function is registered
  • Check fixture / code separation rejects a PR touching both the canonical TSVs and code

So code-first fails this test, and fixtures-first leaves rows for a function the engine does not have. The only way through is three PRs, with a temporary exemption spanning the middle one.

The comment now describes that sequence as the general procedure, so the next new function follows it deliberately instead of rediscovering the deadlock through a red CI run — which is how this one found it.

How to test

cargo test -p truecalc-core --test conformance every_registered_function_has_conformance_coverage

Passes on this branch. That is the whole point: it proves SPARKLINE's 115 rows genuinely cover it, rather than the exemption having masked a gap. Before #772 landed, this same test failed with SPARKLINE removed — which is what forced the three-PR sequence.

Test plan

Related

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

SPARKLINE was added to the pending-fixture-verification set to break a tie
between two CI rules that deadlock for any new function: the coverage guard
wants rows before the function, and the fixture/code separation job forbids
landing both in one PR. Its 115 pipeline-verified rows have now landed, so
the exemption has done its job.

Removing it matters more than it looks. An entry left in this set is not a
note-to-self; it is a permanent hole in the guard, and the function it names
is the one nobody will notice losing coverage. QUERY is a genuine long-term
entry -- its rows do not exist yet. SPARKLINE's did, and were three PRs away.

The comment now describes the three-PR sequence as the general procedure so
the next new function follows it deliberately rather than rediscovering the
deadlock.

Refs #766
@hhimanshu hhimanshu self-assigned this Jul 28, 2026
@github-actions

github-actions Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Test Coverage by Category

Category Unit Tests Google Sheets Conformance Property Cases Total
Array 42 547/547 ✓ 1,000 (2×500) 1,589
Database 35 182/182 ✓ 3,500 (7×500) 3,717
Date 369 418/418 ✓ 2,500 (5×500) 3,287
Engineering 245 886/888 ⚠ 5,500 (11×500) 6,633
Filter 11 80/80 ✓ 4,500 (9×500) 4,591
Financial 149 1,208/1,208 ✓ 2,000 (4×500) 3,357
Info 0 256/256 ✓ 4,500 (9×500) 4,756
Logical 121 263/263 ✓ 3,500 (7×500) 3,884
Lookup 69 392/392 ✓ 1,000 (2×500) 1,461
Math 536 2,006/2,006 ✓ 8,000 (16×500) 10,542
Operator 87 250/250 ✓ 7,500 (15×500) 7,837
Parser 83 92/92 ✓ 4,000 (8×500) 4,175
Query 37 37
Statistical 483 3,156/3,156 ✓ 5,000 (10×500) 8,639
Text 298 729/733 ⚠ 4,000 (8×500) 5,031
Timezone 47 47
Volatile 0 3,500 (7×500) 3,500
Web 29 56/56 ✓ 6,000 (12×500) 6,085
Total 2,897 10,521/10,527 66,000 (132×500) ~79,424

✓ = 100% passing · ⚠ = known deviation · The ~79,424 total counts formula evaluations (each conformance row and each property case = 1). GitHub Checks reports 3,732 Rust test functions: 2,897 unit + 159 property functions (shown as cases above) + 676 conformance/integration.

@hhimanshu
hhimanshu merged commit 3a9d601 into main Jul 28, 2026
7 checks passed
@hhimanshu
hhimanshu deleted the chore/766-enforce-sparkline-coverage branch July 28, 2026 03:59
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 28, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant