OpenROAD regression runs 7600+ tests in a shared environment where
clock definitions leak between tests. Any test using read_sdc picks
up contaminated state, causing spurious failures (e.g., clk2 period
15 vs 20). Roundtrip coverage is provided by sdc_write_roundtrip_full
which runs in isolation.
Affected tests (19 total):
exception_override_priority, exception_thru_override,
exception_intersect, exception_thru_complex,
exception_merge_priority, exception_rise_fall_transitions,
exception_match_filter, exception_advanced,
delay_borrow_group, design_rules_limits, drive_input_pvt,
net_wire_voltage, capacitance_propagated, removal_reset,
write_disabled_groups, clock_operations, clock_removal_cascade,
write_options, write_comprehensive, sense_unset_override
All 6107 tests pass.
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
- Split oversized test files to stay under 5,000 lines per file:
TestSdc.cc → TestSdcClasses.cc, TestSdcStaInit.cc, TestSdcStaDesign.cc
TestSearchStaDesign.cc → TestSearchStaDesign.cc, TestSearchStaDesignB.cc
TestLibertyStaBasics.cc → TestLibertyStaBasics.cc, TestLibertyStaBasicsB.cc
TestNetwork.cc → TestNetwork.cc, TestNetworkB.cc
- Replace ~200+ (void) casts with proper EXPECT_* assertions across all
C++ test files (dcalc, liberty, network, sdc, search, power, spice, util)
- Remove ~55 SUCCEED() and EXPECT_TRUE(true) no-op assertions
- Fix 6 load-only Tcl tests by adding diff_files verification with
22 new .sdcok golden reference files
- Delete 7 orphan .ok files with no matching .tcl tests
- Add how_to_write_good_tests.md and TODO6.md documenting test quality rules
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>