Skip to content

docs: add C++-first testing strategy guide#10731

Open
maliberty wants to merge 2 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:docs-testing-strategy
Open

docs: add C++-first testing strategy guide#10731
maliberty wants to merge 2 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:docs-testing-strategy

Conversation

@maliberty

Copy link
Copy Markdown
Member

Add docs/agents/testing-strategy.md describing the target test pyramid (C++ unit tests as default, thin Tcl/Python binding smoke tests, a small curated set of full-flow golden tests), how to handle DB/STA dependencies via the existing tst::Fixture / SimpleDbFixture / IntegratedFixture stack, and a decision tree for placing a new test.

Include a runbook for incrementally retiring golden tests: the C++ test and the removal of the Tcl/Python test it replaces land in the same change, gated on coverage equivalence, with a step to preserve residual binding coverage (a command is often also exercised by a broader binding test like test_inst.py). Link the guide from testing.md.

Add docs/agents/testing-strategy.md describing the target test pyramid
(C++ unit tests as default, thin Tcl/Python binding smoke tests, a small
curated set of full-flow golden tests), how to handle DB/STA dependencies
via the existing tst::Fixture / SimpleDbFixture / IntegratedFixture stack,
and a decision tree for placing a new test.

Include a runbook for incrementally retiring golden tests: the C++ test
and the removal of the Tcl/Python test it replaces land in the same
change, gated on coverage equivalence, with a step to preserve residual
binding coverage (a command is often also exercised by a broader binding
test like test_inst.py). Link the guide from testing.md.

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
@maliberty maliberty self-assigned this Jun 22, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new testing strategy document (testing-strategy.md) outlining a C++-first test pyramid, dependency management, and a runbook for retiring legacy golden tests, while also updating testing.md to link to it. The review feedback suggests clarifying whether the mentioned command linter is an existing or planned tool, and correcting the referenced test registration file paths to module-specific directories to avoid developer confusion.

Comment thread docs/agents/testing-strategy.md Outdated
Comment thread docs/agents/testing-strategy.md Outdated
Address PR review feedback: mark the binding-coverage linter as a
not-yet-implemented future tool, and reference the module-specific
src/<module>/test/ paths for CMake/Bazel registration.

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
@maliberty maliberty marked this pull request as ready for review June 22, 2026 02:26
@maliberty maliberty requested a review from a team as a code owner June 22, 2026 02:26
@maliberty maliberty requested a review from osamahammad21 June 22, 2026 02:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant