Commit Graph

238 Commits

Author SHA1 Message Date
Jaehyun Kim a4419fb7dd Enable disabled liberty tests and stabilize clock groups regression
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-03-11 18:24:39 +09:00
Jaehyun Kim e7b861051d test: Fix post-merge build errors and regolden .ok files
After merging upstream changes, fix all build errors in C++ test files
and regolden Tcl test golden files to match updated code output.

Build fixes:
- dcalc/test/cpp/TestDcalc.cc: Fix const char* loop iterations, use
  EXPECT_NEAR for uninitialized subnormal float comparison
- liberty/test/cpp/TestLibertyStaBasicsB.cc: Wrap tests using removed
  LibertyBuilder() default constructor in #if 0
- liberty/test/cpp/TestLibertyStaCallbacks.cc: Fix LibertyBuilder()
  call to use sta_->debug()/report(); wrap old visitor tests in #if 0
- search/test/cpp/TestSearchStaDesignB.cc: Fix pg->name() nullptr
  comparison (now returns std::string&)
- search/test/cpp/TestSearchStaInit.cc: Fix 5 clkPinsInvalid/isIdealClock
  tests to expect throw (API now requires linked network)

Tcl test fixes:
- Remove calls to removed APIs: report_path_end_header/footer, report_path_end2
  from 6 search test scripts; regolden their .ok files
- Regolden .ok files for liberty (15), graph (1), network (8),
  parasitics (3), sdc (3), util (2), verilog (8) modules to reflect
  upstream format changes (timing arcs output, pin ordering, spacing)

All 6103 tests now pass.

Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-03-11 17:11:08 +09:00
Jaehyun Kim a5f8e9c3ab test: Fix test failures after master merge
Update test code to match API changes from upstream master:

- TestGraph.cc: Fix makeScenes() call to pass reference instead of pointer
- TestLibertyClasses.cc: Fix ScaleFactorType wire_res/wire_cap name mapping;
  fix TablePtr usage by calling .get() where const TableModel* is expected
- TestLibertyClasses.cc: Update liberty_read_nangate.ok for new timing arc output
- TestPower.cc: Replace PwrActivityOrigin::defaulted with ::unknown;
  fix isSet() expectations (unknown origin returns false)
- TestSdcClasses.cc, TestSdf.cc, TestUtil.cc, TestSpice.cc:
  Fix RiseFall::to_string() expected values from short form ("^"/"v")
  to long form ("rise"/"fall")
- TestUtil.cc: Remove tests for deleted StringVector/split/TokenParser
  and StringSet::deleteContents (removed from master)
- TestSpice.cc: Replace StdStringSeq with StringSeq
- helpers.tcl: Use pwd-based result_dir so module tests write results
  to their own test/results/ directory
- verilog_bus.ok: Update golden file for new port ordering from master

Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-03-11 10:16:27 +09:00
Jaehyun Kim d4ad9312ea Merge origin/master into secure-sta-test-suite
Resolve add/add conflict in test/helpers.tcl by merging both versions:
- Keep master's report_file, report_file_filter, sort_objects functions
- Keep branch's diff_files, diff_files_sorted functions
- Use master's result_dir setup with branch's mkdir logic in make_result_file

Resolve content conflict in test/regression by keeping branch's
bash/ctest launcher over master's Tcl regression script.

Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-03-11 09:48:28 +09:00
James Cherry 859982bdc7 StdStringSeq -> StringSeq
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-03-08 15:51:50 -07:00
James Cherry 0c36caa182 rm StdString
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-03-08 15:16:00 -07:00
James Cherry bf8a61fe08 PinPair
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-03-08 14:27:56 -07:00
James Cherry c7d48679c9 include/sta/WriteSdc.hh -> sdc/WriteSdc.hh
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-03-08 14:27:49 -07:00
James Cherry a419f0a721 LibertyPortPair calls
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-03-08 13:36:54 -07:00
James Cherry 3b61817f90 sdc:isConstrained for clk latency pin
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-03-07 17:19:23 -07:00
James Cherry d8c0e9285b RiseFall use shortName instead of to_string
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-03-06 12:02:05 -07:00
James Cherry 741bf4d561 rm using std::
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-03-02 12:13:13 -08:00
Jaehyun Kim 92bb9b8ec9 test: Add comprehensive test infrastructure and test cases across all OpenSTA modules
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-02-27 12:59:25 +09:00
Jaehyun Kim 55259b894b test: Add `save_ok` script
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-02-27 11:12:27 +09:00
Jaehyun Kim 9bbac53157 test: Make ctest run C++ unit tests
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-02-27 09:51:10 +09:00
Jaehyun Kim 8adbcc0d6d Merge upstream STA update and adapt all tests to new API
Major upstream refactoring: Corner→Scene, Mode architecture, warning
format change (Warning ID:), command renames, and many API signature
changes. Adapted all C++ test files and TCL test scripts/expected
output files to pass with the new API. 6159/6159 tests pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-02-23 23:05:29 +09:00
Jaehyun Kim 7173c10cc1 test: strengthen assertions, add sorted SDC diff, and clean up tests
- 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>
2026-02-23 17:36:45 +09:00
Jaehyun Kim b6d598a119 test: strengthen assertions, add sorted SDC diff, and clean up tests
- Add diff_files_sorted to test/helpers.tcl for hash-order-independent
  SDC comparison (fixes non-deterministic write_sdc output ordering)
- Use diff_files_sorted in sdc_derate_disable_deep and
  sdc_port_delay_advanced tests
- Remove stale coverage percentages from test comments (Comment 1)
- Remove unnecessary catch blocks in search property tests (Comment 3)
- Strengthen load-only tests with actual data verification (Comment 8)
- Remove orphan .ok files for deleted monolithic tests (Comment 9)
- Add golden .sdcok/.libok/.vok/.sdfok files for SDC/liberty/verilog
  write-and-diff tests
- Add -B (clean rebuild) option to make_coverage_report.sh
- Replace (void) casts and EXPECT_TRUE(true) with real assertions in
  TestSdc.cc and TestVerilog.cc

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-02-23 11:50:23 +09:00
Jaehyun Kim a58d7e4cc6 test: add explicit assertions to all cpp test cases
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-02-22 21:14:35 +09:00
Jaehyun Kim b55fcabee4 test: improve test stability and assertions
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-02-22 20:34:07 +09:00
Jaehyun Kim 76b12eb2d2 test: Improve test assertions and stabilize multimodule write test
Strengthen C++ test assertions in TestSdc and TestSearch with actual
value checks. Stabilize verilog_multimodule_write by using clear_sta
for isolated roundtrips. Add report_checks to wireload model tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-02-22 19:25:58 +09:00
Jaehyun Kim 0693e7d479 test: Strengthen C++ test assertions with meaningful checks
Replace empty-body checks and trivial file-existence assertions with
actual content verification and state validation in C++ unit tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-02-22 18:52:36 +09:00
Jaehyun Kim 98e00b0348 test: Delete dead code from Tcl tests and remove broken write_gate_spice tests
Remove dead code blocks that reference non-exposed Tcl commands (e.g.,
sta::find_pi_pole_residue) and delete all write_gate_spice catch blocks
from spice tests since write_gate_spice_cmd SWIG binding is missing,
making all write_gate_spice calls always fail. Added bug report for the
missing binding. All 6531 tests pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:40:50 +09:00
Jaehyun Kim 2d2762437a test: Remove unnecessary catch blocks from Tcl tests across all modules
Remove bare catch blocks that silently swallowed errors instead of
properly testing them. Fix underlying issues revealed by catch removal
including wrong API calls ([$role name] on strings, invalid properties
like cell_leakage_power/is_register, nonexistent Tcl bindings) and
incorrect library names. Update golden .ok files to match new output.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:07:40 +09:00
Jaehyun Kim 726a64a961 test: Add explanatory comments to all catch blocks in Tcl tests
Document why each catch block is needed across 48 test files,
covering liberty, search, sdc, spice, network, parasitics, util,
and verilog modules.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 15:39:36 +09:00
Jaehyun Kim ce45133c84 test: Fix wrong API calls in Tcl tests and remove unnecessary catches
Replace wrong/non-existent command calls with correct OpenSTA APIs:
- sta::pin_slack → get_property $pin slack_max_rise
- sta::slow_drivers_cmd → sta::slow_drivers
- set_latch_borrow_limit → set_max_time_borrow
- remove_data_check → unset_data_check
- remove_clock → delete_clock
- reset_path → unset_path_exceptions
- sta::report_path_end 3-arg → sta::report_path_end2
- sta::design_power "NULL" → sta::design_power [sta::cmd_corner]
- report_path $path → sta::report_path_cmd $path
- connect_pin 3-arg → connect_pin net inst/port
- set_power_activity positional → -input_ports flag
- sta::is_clock [get_ports] → sta::is_clock [sta::get_port_pin]
- get_property $inst lib_name → liberty_cell/liberty_library
- get_property $pin net_name → [$pin net] + get_full_name
- get_property $net is_power → $net is_power method
- Removed unnecessary catch around sta::write_liberty

23 catch blocks removed. Tests now execute real API calls instead
of silently failing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 15:32:08 +09:00
Jaehyun Kim 812d26f14c test: Apply review feedback - part4
Remove unnecessary catch blocks in network, parasitics, sdc, spice,
and util test modules. Add report_checks after set_wire_load_model
in parasitics_wireload.tcl to verify timing changes per wireload.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 14:13:55 +09:00
Jaehyun Kim e57c8043cd test: Apply review feedback - part3
Remove unnecessary catch blocks from Tcl test files across all modules,
add report_checks after each set_wire_load_model in liberty_wireload,
rewrite liberty_sky130_corners for actual multi-corner timing analysis
with define_corners, and expand C++ tests (TestSearchIncremental 8→36,
TestPower 71→96, TestSpice 98→126 tests).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 13:05:07 +09:00
Jaehyun Kim 547737f71e test: Apply review feedback - part2
- Remove stale line-number coverage comments (# Targets: line NNN, hit=0)
- Remove useless file-existence checks from verilog/sdf tests
- Delete 21 orphaned dcalc Tcl tests (C++ tests already cover them)
- Rename liberty_ccsn_ecsm -> liberty_ccsn (no ECSM libs available)
- Fix liberty_sky130_corners to use define_corners/-corner for real multi-corner testing
- Add report_checks per wireload model in liberty_wireload
- Fix test/regression to work from test/ directory (label mismatch)
- Refactor all module CMakeLists.txt with sta_module_tests() macro

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 01:13:42 +09:00
Jaehyun Kim 6799b1909a test: Apply review feedback - part1
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-02-19 23:30:23 +09:00
James Cherry 54a3cc0721 revert bb23f157
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-02-13 09:02:22 -07:00
James Cherry bb23f15732 Sdc::deleteDeratingFactors resolves #381
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-02-13 08:01:26 -07:00
Jaehyun Kim c147d63880 sdc: Fix dangling pointer issue in `Sdc::deleteDeratingFactors()`
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-02-13 22:53:41 +09:00
Jaehyun Kim b77779f7a6 test: Refactoring. Standardize Google Test naming conventions by removing `R#_` prefixes, improve temporary file creation with `mkstemp`, etc
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-02-13 20:36:42 +09:00
Jaehyun Kim d6c09372ba test: Initial upload
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-02-13 19:19:09 +09:00
James Cherry 33e480a6c1 liberty memory management
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-02-04 18:33:04 -07:00
James Cherry db01a2122e Merge branch 'master' into rel_3.0 2026-01-23 12:40:57 -07:00
Akash Levy 117e4094bc
Fix for invalid operator error handling (#366)
* Fix for invalid operator error handling

* Revisions
2026-01-23 11:39:56 -08:00
James Cherry d42b821c00 rel 3.0
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-01-13 09:36:45 -07:00
James Cherry 01ad7e5ed3 fix damage from pr #349
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-12-04 18:39:46 -07:00
Akash Levy 6e16c3f189
Allow `set_units`/`set_cmd_units` to support floats properly (#349) 2025-12-04 08:30:05 -08:00
James Cherry db3a1dd6e6 disconnect_pin do not delete pin from exceptions
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-11-13 10:31:43 -07:00
James Cherry 4dad6ab3b1 disconnect/disconnect pin set_multicycle_path resolves #327
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-11-13 10:06:57 -07:00
James Cherry 2fc4ece17f rm Sta:findGroupPathPins
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-11-08 18:42:41 -07:00
James Cherry 82a37d0777 sdc ExceptionPathSet*->ExceptionPathSet
commit 277de17b34f4b36b9c889f883872c604b39a7558
Author: James Cherry <cherry@parallaxsw.com>
Date:   Sat Nov 8 12:53:22 2025 -0700

    ExceptionPathSet Set -> std::set

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit ce9afb6d29a5532b9b5fdadcdaf48aeaf1ba9c99
Author: James Cherry <cherry@parallaxsw.com>
Date:   Sat Nov 8 12:17:01 2025 -0700

    ExceptionPathSet*->ExceptionPathSet

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-11-08 13:38:07 -07:00
James Cherry 8287aec5f6 Verilog make pins for liberty pg_pins resolves #326
commit b4a89c93965c49a8685fd41cb6aee10635d7a7f3
Author: James Cherry <cherry@parallaxsw.com>
Date:   Fri Nov 7 11:48:10 2025 -0700

    pg_ -> PwrGnd

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 12ddba4bf220cec8459c15e483a871b13e507bf2
Author: James Cherry <cherry@parallaxsw.com>
Date:   Fri Nov 7 08:56:02 2025 -0700

    pg_port

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-11-07 11:55:43 -07:00
James Cherry 10a3cdc4d1 Exception::delete* hash update resolves #325
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-11-04 16:57:28 -07:00
James Cherry 28812daf20 leak
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-11-04 16:50:54 -07:00
James Cherry 5b312ee084 rm disconnected pin from exceptions resolves #318
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-10-31 10:36:57 -07:00
James Cherry 98d801d7a6 report paths in multiple matching groups resolves ascenium #145
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-10-30 08:53:36 -07:00