blob: dcefe070fb26926def14f682c970e241d6406fdc [file] [log] [blame] [edit]
#!/bin/bash
export CALIBRE_HOME=/usr/local/google/edatools/mentor/calibre/2018.4.34.26/aoj_cal_2018.4_34.26/
export MGC_TMPDIR=/tmp
export MGC_CALIBRE_LAYOUT_TMP_FILE=/tmp/query_results
export CALIBRE_DISABLE_RHEL5_WARNING=1
export USE_CALIBRE_VCO=aoj
export CALIBRE_VERSION_DASH=2018.4_34.26
export CALIBRE_VERSION_DOT=$(echo $CALIBRE_VERSION_DASH | sed -e's/_/./')
export MGC_HOME=/usr/local/google/edatools/mentor/calibre/$CALIBRE_VERSION_DOT/aoj_cal_$CALIBRE_VERSION_DASH/
export PATH=${MGC_HOME}/bin:${PATH}
export MGLS_LICENSE_FILE=1817@gchips-licenses.corp.google.com
export LM_LICENSE_FILE=1717@gchips-licenses.corp.google.com
export PDK_HOME="/data/pdks/skywater/s8/V1.3.0"
if [ -z $VERSION ];then
echo "Missing VERSION"
exit 1
fi
export TEST_DIR=/usr/local/google/home/tansell/work/openflow-drc-tests/
export JOB_HOME=$TEST_DIR/torture_tests/$VERSION/
if [ ! -d "$JOB_HOME" ]; then
echo "$JOB_HOME doesn't exist?"
exit 1
fi
# drcmr runset file uses export PDK_HOME2 for local (to this repo) rules-file:
# $PDK_HOME2/DRC/Calibre/s8_drcRules_MR (aka $TEST_DIR/pdk/skywater/s8/V1.3.0-mr/DRC/Calibre/s8_drcRules_MR)
export PDK_HOME2="$TEST_DIR/pdk/skywater/s8/V1.3.0-mr"
for GDS_FILE in $JOB_HOME/*.gds{,.gz,.xz}; do
if [ ! -e "$GDS_FILE" ]; then
continue # above brace-expansion keeps non-existent star forms: '.../*.gds.gz'
fi
# check for ambiguity(error); and optionally decompress.
# Keep source & decompress to a .gds in parallel; and afterwards delete .gds.
# This due to suspicion TEST_DIR or JOB_HOME elsewhere/later subject to a 'git add --all',
# which would commit (intended temporary) uncompressed files. Better would be decompress
# to a scratch-dir that is git-ignored or outside of TEST_DIR; but without visibility
# into rest of system not clear if works to restructure use of (exports)JOB_HOME,JOB_NAME.
GDS_BASE=${GDS_FILE%.xz}
GDS_BASE=${GDS_BASE%.gz}
GDS_FILEX=${GDS_BASE}.xz
GDS_FILEG=${GDS_BASE}.gz
GDS_DEL=""
nbr=0
[ -e "$GDS_BASE" ] && (( nbr++ ))
[ -e "$GDS_FILEX" ] && (( nbr++ ))
[ -e "$GDS_FILEG" ] && (( nbr++ ))
if [[ $nbr != 1 ]]; then
echo "$GDS_FILE ambiguous, $nbr variants"
continue
fi
if [ -e "$GDS_FILEX" ]; then
unxz -c <"$GDS_FILE" >"$GDS_BASE"
stat=$?
if [[ "$stat" != 0 ]]; then
echo "Failed($stat) to: unxz --force $GDS_FILE"
continue
fi
echo "completed: unxz --force $GDS_FILE"
GDS_FILE="$GDS_BASE"
GDS_DEL="$GDS_BASE"
fi
if [ -e "$GDS_FILEG" ]; then
gunzip -c <"$GDS_FILE" >"$GDS_BASE"
stat=$?
if [[ "$stat" != 0 ]]; then
echo "Failed($stat) to: gunzip --force $GDS_FILE"
continue
fi
echo "completed: gunzip --force $GDS_FILE"
GDS_FILE="$GDS_BASE"
GDS_DEL="$GDS_BASE"
fi
export JOB_NAME="$(basename -s .gds $GDS_FILE)"
# export JOB_NAME=s8pir_10r_vcells_lvs
# export JOB_NAME=torture_test_s8
echo
echo
echo
echo "export JOB_HOME='$JOB_HOME'"
echo "export JOB_NAME='$JOB_NAME'"
echo "====================================="
if [ ! -e $JOB_HOME/$JOB_NAME.gds ]; then
echo "Did not find '$JOB_HOME/$JOB_NAME.gds'"
exit 1
fi
set -x
cd $TEST_DIR
git checkout HEAD $TEST_DIR/runsets/*_runset
#sed -i -e"s@\$JOB_HOME@$JOB_HOME@" $TEST_DIR/runsets/*_runset
cd ~/github/google/skywater-pdk/s8/V1.3.0
# temp. disable all but the drcMR deck:
# calibre -gui -drc -runset $TEST_DIR/runsets/s8_drc_runset -batch > $JOB_HOME/$JOB_NAME.drc_runset.log 2>&1
# calibre -gui -drc -runset $TEST_DIR/runsets/s8_fill_runset -batch > $JOB_HOME/$JOB_NAME.fill_runset.log 2>&1
# calibre -gui -drc -runset $TEST_DIR/runsets/s8_latchup_runset -batch > $JOB_HOME/$JOB_NAME.latchup_runset.log 2>&1
# calibre -gui -drc -runset $TEST_DIR/runsets/s8_lures_runset -batch > $JOB_HOME/$JOB_NAME.lures_runset.log 2>&1
# calibre -gui -drc -runset $TEST_DIR/runsets/s8_soft_runset -batch > $JOB_HOME/$JOB_NAME.soft_runset.log 2>&1
# calibre -gui -drc -runset $TEST_DIR/runsets/s8_stress_runset -batch > $JOB_HOME/$JOB_NAME.stress_runset.log 2>&1
# calibre -gui -lvs -runset $TEST_DIR/runsets/s8_lvs_runset -batch > $JOB_HOME/$JOB_NAME.lvs_runset.log 2>&1
# calibre -gui -pex -runset $TEST_DIR/runsets/s8_xRC_runset -batch > $JOB_HOME/$JOB_NAME.xRC_runset.log 2>&1
# drcmr runset file uses export PDK_HOME2 for local rules-file:
# $PDK_HOME2/DRC/Calibre/s8_drcRules_MR (aka $TEST_DIR/pdk/skywater/s8/V1.3.0-mr/DRC/Calibre/s8_drcRules_MR)
calibre -gui -drc -runset $TEST_DIR/runsets/s8_drcmr_runset -batch > $JOB_HOME/$JOB_NAME.drcmr_runset.log 2>&1
find $JOB_HOME -type f -exec sed -i -e's/... [0-9][0-9] [0-9 ][0-9]:[0-9][0-9]:[0-9][0-9] 2.../... XX XX:XX:XX 2.../' \{\} \+
if [ -n "$GDS_DEL" ]; then
rm -f "$GDS_DEL"
echo "completed: rm -f $GDS_DEL"
fi
done
exit 0