Skip to content

test: fold near-identical test bodies into tables across eight packages - #29463

Draft
ibetitsmike wants to merge 8 commits into
mainfrom
mike/test-table-driven-consolidation
Draft

ibetitsmike wants to merge 8 commits into
mainfrom
mike/test-table-driven-consolidation

Conversation

@ibetitsmike

@ibetitsmike ibetitsmike commented Sep 17, 2026

Copy link
Copy Markdown
Collaborator

Folds groups of near-identical test bodies (same parent, same parallel flag, differing only in inputs and expected values) into table-driven tests in eight packages: coderd/templatebuilder, scripts/develop, agent/agentfiles, coderd/x/chatd/chatloop, coderd/x/chatd/chatdebug, enterprise/aibridgeproxyd, cli, and coderd/database/db2sdk. One commit per package.

Every case keeps its previous subtest name, t.Parallel() placement is unchanged, and the set of === RUN names is identical except where standalone TestX_Y funcs became TestX/Y subtests (chatloop: 9 funcs into TestExecuteLocalTools_BatchRuntime; chatdebug: 15 funcs into two tables). Members whose bodies differ in more than data stayed as they were (listed per package in the commit messages). In agent/agentfiles the four TestFuzzyReplace_* funcs were already tables, so the shared request plumbing was hoisted into one helper instead of merging the funcs and losing their per-rule docs. Net -1035 lines across 9 test files; runtime is unchanged (all sub-100ms unit tests).

Package Diff Funcs removed Subtests RUN lines
coderd/templatebuilder +237 / -291 0 31 -> 31 33 -> 33
scripts/develop +194 / -246 0 27 -> 27 28 -> 28
agent/agentfiles +117 / -260 0 unchanged 58 -> 58
coderd/x/chatd/chatloop +224 / -306 9 3 -> 12 14 -> 15
coderd/x/chatd/chatdebug +251 / -537 13 0 -> 15 42 -> 44
enterprise/aibridgeproxyd +287 / -419 0 31 -> 31 32 -> 32
cli +143 / -326 0 15 -> 15 16 -> 16
coderd/database/db2sdk +130 / -233 0 9 -> 9 10 -> 10

Validation

  • Per package: go test -count=1 -tags=testsmallbatch -parallel=8 ./<pkg>/ -run <regex> -v before and after, with the === RUN name sets diffed
  • go test -race -count=2 -shuffle=on on each converted test: pass
  • golangci-lint run ./<pkg>/... with a fresh cache: 0 issues in all eight packages
  • Repository pre-commit hook (including lint/go) passed on every commit

Part of the test-suite speedup series (see #29457); independent of the other PRs.

Remote validation

Remote run on a dogfood workspace (separate compute), chat https://dogfood.cdr.dev/agents/5bbe73d0-866a-4841-9cc3-c5e5b4d97e44, tested head d7c55d6b0e8 against base 9d973372774: all eight packages pass on the head and under -race -count=3 -shuffle=on; package times are sub-second on both sides (unchanged). === RUN name sets: chatloop 15 to 16 lines with all nine TestExecuteLocalTools_<X> leaves surviving as TestExecuteLocalTools_BatchRuntime/<X>; chatdebug 42 to 44; aibridgeproxyd TestNew 32 to 32, byte-identical sorted list. One correction to the text above: seven chatdebug leaves are renamed, not preserved verbatim (TestRecordingTransport_*UnknownLength* became TestRecordingTransport_UnknownLengthClose/<name without "UnknownLength">), so -run filters keyed on those old names need updating. Endorsed verdict: PASS.

Xum (an AI agent) authored this PR on behalf of @ibetitsmike.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant