test: Initial upload

Signed-off-by: Jaehyun Kim <[email protected]>
This commit is contained in:
Jaehyun Kim
2026-02-13 19:19:09 +09:00
parent e872c55bfe
commit d6c09372ba
733 changed files with 2946117 additions and 38 deletions
+40 -37
View File
@@ -1,42 +1,45 @@
#!/bin/sh
# The next line is executed by /bin/sh, but not Tcl \
exec tclsh $0 ${1+"$@"}
#!/usr/bin/env bash
# CLI launcher for module regression tests.
# Symlinked from <module>/test/regression.
# Usage: ./regression [ctest args...]
# ./regression run all tests for this module
# ./regression -R search_timing run matching test
# ./regression -R search_timing.tcl .tcl suffix is stripped automatically
#
# Modeled after OpenROAD/test/shared/regression.sh
# OpenSTA, Static Timing Analyzer
# Copyright (c) 2025, Parallax Software, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# The origin of this software must not be misrepresented; you must not
# claim that you wrote the original software.
#
# Altered source versions must be plainly marked as such, and must not be
# misrepresented as being the original software.
#
# This notice may not be removed or altered from any source distribution.
set -e
# Usage: regression help | test1 [test2...]
# where test is all or the name of a tcl script in $STA/test
# Determine module name from current directory.
script_path=$(realpath "$PWD")
sta_home=$(cd "$(dirname "$(realpath "$0")")/.." && pwd)
module=${script_path#${sta_home}/}
module=${module%%/*}
# Directory containing tests.
set test_dir [file dirname [file normalize [info script]]]
set sta_dir [file normalize [file join $test_dir ".."]]
source [file join $test_dir regression_vars.tcl]
source [file join $test_dir regression.tcl]
# Find build directory.
if [ -d "${sta_home}/build_test" ]; then
build_dir="${sta_home}/build_test"
elif [ -d "${sta_home}/build" ]; then
build_dir="${sta_home}/build"
else
echo "Error: no build directory found (tried build_test, build)"
exit 1
fi
regression_main
# Rewrite -R argument: strip .tcl suffix, convert _ to . for ctest name matching.
args=()
next_is_pattern=false
for arg in "$@"; do
if $next_is_pattern; then
arg="${arg%.tcl}"
arg="${arg//_/.}"
next_is_pattern=false
fi
if [ "$arg" = "-R" ]; then
next_is_pattern=true
fi
args+=("$arg")
done
# Local Variables:
# mode:tcl
# End:
cd "${build_dir}"
ctest -L "module_${module}" "${args[@]}"