CMC test suite, cleanup

This commit is contained in:
rlar 2011-05-29 10:43:20 +00:00
parent f94cc3a8a0
commit c6f674d0e1
10 changed files with 167 additions and 552 deletions

View File

@ -1,11 +1,25 @@
2011-05-29 Robert Larice
* Removed tests/hisimhv/nmos/Makefile ,
* Removed tests/hisimhv/pmos/Makefile ,
* Removed tests/hisim/nmos/Makefile ,
* Removed tests/hisim/pmos/Makefile ,
* Added tests/bin/run_cmc_check ,
* Modified tests/hisimhv/nmos/run ,
* Modified tests/hisimhv/pmos/run ,
* Modified tests/hisim/nmos/run ,
* Modified tests/hisim/pmos/run :
CMC test suite, cleanup
use /bin/sh instead of /bin/csh
replace the makefiles with a single script
2011-05-29 Holger Vogt
* main.c, inpcom.c, numparam.h, spicenum.c, xpressn.c, compatmode.h, b3v1.c:
compatibility issues
2011-05-28 Dietmar Warning
* tests/hisim, tests/hisimhv: include the CMC test suite (Author: Colin McAndrew)
* tests/hisim, tests/hisimhv: include the CMC test suite (Author: Colin McAndrew)
provided by the model developer - Hiroshima University
2011-05-28 Holger Vogt
* configure.ac, visualc/config.h, CPOYING, FAQ, INSTALL, NEWS:
update to prepare release 23

141
tests/bin/run_cmc_check Executable file
View File

@ -0,0 +1,141 @@
#!/bin/sh
#
# Example Script to run tests and check results.
#
# This is an example script for running QA tests on a
# model and then checking the simulated results against
# reference results. A separate target is defined for each
# variant of the model. The program runQaTests.pl runs the
# tests, and that program expects a perl module SIMULATOR.pm
# to be provided for each simulator that is tested.
# Examples of these are provided.
#
qaSpecFile="qaSpec"
qaResultsDirectory="results"
testProgramName="../../bin/runQaTests.pl"
testProgramFlags="-nwV"
#testProgramFlags="-d"
help() {
cat <<-EOF
Valid targets are:
all run tests and compare results for all simulators
spice run tests and compare results spice
ngspice run tests and compare results ngspice
clean remove all previously generated simulation results
NOTE: if test results exist they are not resimulated
NOTE: to force resimulation run "make clean" first
EOF
}
run_test() {
simname="$1"
localPlatform=`${testProgramName} -platform`
localVersion=`${testProgramName} -sv -s ${simname} ${qaSpecFile}`
echo ""
echo "******"
echo "****** ${qaSpecFile} tests for ${simname}"
echo "****** (for version ${localVersion} on platform ${localPlatform})"
echo "******"
for test in `${testProgramName} -lt -s ${simname} ${qaSpecFile}` ; do
echo ""
echo "****** Checking test (${simname}): ${test}"
for variant in `${testProgramName} -lv -s ${simname} ${qaSpecFile}` ; do
${testProgramName} \
${testProgramFlags} \
-s ${simname} \
-r -t ${test} \
-var ${variant} \
${qaSpecFile}
done
done
for version in `ls -C1 ${qaResultsDirectory}/${simname}` ; do
for platform in `ls -C1 ${qaResultsDirectory}/${simname}/${version}` ; do
if [ ${version} = ${localVersion} -a ${platform} = ${localPlatform} ]
then
break
fi
echo ""
echo "******"
echo "****** Comparing previously run ${qaSpecFile} tests for ${simname}"
echo "****** (for version ${version} on platform ${platform})"
echo "******"
for test in `${testProgramName} -lt -s ${simname} ${qaSpecFile}` ; do
echo ""
echo "****** Checking test (${simname}): ${test}"
for variant in `${testProgramName} -lv -s ${simname} ${qaSpecFile}` ; do
${testProgramName} \
-c ${version} ${platform} \
-s ${simname} \
-t ${test} \
-var ${variant} \
${qaSpecFile}
done
done
done
done
}
#####
##### spice tests
#####
spice() {
run_test spice
}
#####
##### ngspice tests
#####
ngspice() {
run_test ngspice
}
clean() {
rm -rf ${qaResultsDirectory}/spice b3v3check.log
rm -rf ${qaResultsDirectory}/ngspice ngspiceCkt*
}
all() {
spice
ngspice
}
for arg in $@ ; do
case "$arg" in
all | clean | spice | ngspice)
"$arg"
;;
*)
help
;;
esac
done

View File

@ -1,135 +0,0 @@
#
# Example Makefile to run tests and check results.
#
# This is an example makefile for running QA tests on a
# model and then checking the simulated results against
# reference results. A separate target is defined for each
# variant of the model. The program runQaTests.pl runs the
# tests, and that program expects a perl module SIMULATOR.pm
# to be provided for each simulator that is tested.
# Examples of these are provided.
#
qaSpecFile = qaSpec
qaResultsDirectory = results
testProgramName = ../../bin/runQaTests.pl
testProgramFlags = -nwV
#testProgramFlags = -d
help:
@echo "" ; \
echo "Valid targets are:" ; \
echo "" ; \
echo "all run tests and compare results for all simulators" ; \
echo "" ; \
echo "spice run tests and compare results spice" ; \
echo "ngspice run tests and compare results ngspice" ; \
echo "" ; \
echo "clean remove all previously generated simulation results"; \
echo "" ; \
echo "NOTE: if test results exist they are not resimulated" ; \
echo "NOTE: to force resimulation run \"make clean\" first" ; \
echo ""
all: spice ngspice
#####
##### spice tests
#####
spice:
@-echo ""; \
localPlatform=`$(testProgramName) -platform` ; \
localVersion=`$(testProgramName) -sv -s spice $(qaSpecFile)` ; \
localVersionAndPlatform=$$localVersion._.$$localPlatform ; \
echo "******"; \
echo "****** $(qaSpecFile) tests for spice"; \
echo "****** (for version $$localVersion on platform $$localPlatform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s spice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (spice): $$test" ; \
for variant in `$(testProgramName) -lv -s spice $(qaSpecFile)` ; \
do \
$(testProgramName) $(testProgramFlags) -s spice -r -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
for version in `ls -C1 $(qaResultsDirectory)/spice` ; \
do \
for platform in `ls -C1 $(qaResultsDirectory)/spice/$$version` ; \
do \
versionAndPlatform=$$version._.$$platform ; \
if [ $$versionAndPlatform = $$localVersionAndPlatform ] ; \
then \
break ; \
fi ; \
echo "" ; \
echo "******"; \
echo "****** Comparing previously run $(qaSpecFile) tests for spice"; \
echo "****** (for version $$version on platform $$platform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s spice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (spice): $$test" ; \
for variant in `$(testProgramName) -lv -s spice $(qaSpecFile)` ; \
do \
$(testProgramName) -c $$version $$platform -s spice -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
done ; \
done
#####
##### ngspice tests
#####
ngspice:
@-echo ""; \
localPlatform=`$(testProgramName) -platform` ; \
localVersion=`$(testProgramName) -sv -s ngspice $(qaSpecFile)` ; \
localVersionAndPlatform=$$localVersion._.$$localPlatform ; \
echo "******"; \
echo "****** $(qaSpecFile) tests for ngspice"; \
echo "****** (for version $$localVersion on platform $$localPlatform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s ngspice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (ngspice): $$test" ; \
for variant in `$(testProgramName) -lv -s ngspice $(qaSpecFile)` ; \
do \
$(testProgramName) $(testProgramFlags) -s ngspice -r -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
for version in `ls -C1 $(qaResultsDirectory)/ngspice` ; \
do \
for platform in `ls -C1 $(qaResultsDirectory)/ngspice/$$version` ; \
do \
versionAndPlatform=$$version._.$$platform ; \
if [ $$versionAndPlatform = $$localVersionAndPlatform ] ; \
then \
break ; \
fi ; \
echo "" ; \
echo "******"; \
echo "****** Comparing previously run $(qaSpecFile) tests for ngspice"; \
echo "****** (for version $$version on platform $$platform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s ngspice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (ngspice): $$test" ; \
for variant in `$(testProgramName) -lv -s ngspice $(qaSpecFile)` ; \
do \
$(testProgramName) -c $$version $$platform -s ngspice -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
done ; \
done
clean:
@/bin/rm -rf $(qaResultsDirectory)/spice b3v3check.log
@/bin/rm -rf $(qaResultsDirectory)/ngspice ngspiceCkt*

View File

@ -1,3 +1,3 @@
#!/bin/csh -fv
#!/bin/sh
make ngspice | tee cmcqa_nmos.log
../../bin/run_cmc_check clean ngspice | tee cmcqa_nmos.log

View File

@ -1,135 +0,0 @@
#
# Example Makefile to run tests and check results.
#
# This is an example makefile for running QA tests on a
# model and then checking the simulated results against
# reference results. A separate target is defined for each
# variant of the model. The program runQaTests.pl runs the
# tests, and that program expects a perl module SIMULATOR.pm
# to be provided for each simulator that is tested.
# Examples of these are provided.
#
qaSpecFile = qaSpec
qaResultsDirectory = results
testProgramName = ../../bin/runQaTests.pl
testProgramFlags = -nwV
#testProgramFlags = -d
help:
@echo "" ; \
echo "Valid targets are:" ; \
echo "" ; \
echo "all run tests and compare results for all simulators" ; \
echo "" ; \
echo "spice run tests and compare results spice" ; \
echo "ngspice run tests and compare results ngspice" ; \
echo "" ; \
echo "clean remove all previously generated simulation results"; \
echo "" ; \
echo "NOTE: if test results exist they are not resimulated" ; \
echo "NOTE: to force resimulation run \"make clean\" first" ; \
echo ""
all: spice ngspice
#####
##### spice tests
#####
spice:
@-echo ""; \
localPlatform=`$(testProgramName) -platform` ; \
localVersion=`$(testProgramName) -sv -s spice $(qaSpecFile)` ; \
localVersionAndPlatform=$$localVersion._.$$localPlatform ; \
echo "******"; \
echo "****** $(qaSpecFile) tests for spice"; \
echo "****** (for version $$localVersion on platform $$localPlatform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s spice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (spice): $$test" ; \
for variant in `$(testProgramName) -lv -s spice $(qaSpecFile)` ; \
do \
$(testProgramName) $(testProgramFlags) -s spice -r -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
for version in `ls -C1 $(qaResultsDirectory)/spice` ; \
do \
for platform in `ls -C1 $(qaResultsDirectory)/spice/$$version` ; \
do \
versionAndPlatform=$$version._.$$platform ; \
if [ $$versionAndPlatform = $$localVersionAndPlatform ] ; \
then \
break ; \
fi ; \
echo "" ; \
echo "******"; \
echo "****** Comparing previously run $(qaSpecFile) tests for spice"; \
echo "****** (for version $$version on platform $$platform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s spice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (spice): $$test" ; \
for variant in `$(testProgramName) -lv -s spice $(qaSpecFile)` ; \
do \
$(testProgramName) -c $$version $$platform -s spice -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
done ; \
done
#####
##### ngspice tests
#####
ngspice:
@-echo ""; \
localPlatform=`$(testProgramName) -platform` ; \
localVersion=`$(testProgramName) -sv -s ngspice $(qaSpecFile)` ; \
localVersionAndPlatform=$$localVersion._.$$localPlatform ; \
echo "******"; \
echo "****** $(qaSpecFile) tests for ngspice"; \
echo "****** (for version $$localVersion on platform $$localPlatform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s ngspice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (ngspice): $$test" ; \
for variant in `$(testProgramName) -lv -s ngspice $(qaSpecFile)` ; \
do \
$(testProgramName) $(testProgramFlags) -s ngspice -r -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
for version in `ls -C1 $(qaResultsDirectory)/ngspice` ; \
do \
for platform in `ls -C1 $(qaResultsDirectory)/ngspice/$$version` ; \
do \
versionAndPlatform=$$version._.$$platform ; \
if [ $$versionAndPlatform = $$localVersionAndPlatform ] ; \
then \
break ; \
fi ; \
echo "" ; \
echo "******"; \
echo "****** Comparing previously run $(qaSpecFile) tests for ngspice"; \
echo "****** (for version $$version on platform $$platform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s ngspice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (ngspice): $$test" ; \
for variant in `$(testProgramName) -lv -s ngspice $(qaSpecFile)` ; \
do \
$(testProgramName) -c $$version $$platform -s ngspice -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
done ; \
done
clean:
@/bin/rm -rf $(qaResultsDirectory)/spice b3v3check.log
@/bin/rm -rf $(qaResultsDirectory)/ngspice ngspiceCkt*

View File

@ -1,3 +1,3 @@
#!/bin/csh -fv
#!/bin/sh
make clean ngspice | tee cmcqa_pmos.log
../../bin/run_cmc_check clean ngspice | tee cmcqa_pmos.log

View File

@ -1,135 +0,0 @@
#
# Example Makefile to run tests and check results.
#
# This is an example makefile for running QA tests on a
# model and then checking the simulated results against
# reference results. A separate target is defined for each
# variant of the model. The program runQaTests.pl runs the
# tests, and that program expects a perl module SIMULATOR.pm
# to be provided for each simulator that is tested.
# Examples of these are provided.
#
qaSpecFile = qaSpec
qaResultsDirectory = results
testProgramName = ../../bin/runQaTests.pl
testProgramFlags = -nwV
#testProgramFlags = -d
help:
@echo "" ; \
echo "Valid targets are:" ; \
echo "" ; \
echo "all run tests and compare results for all simulators" ; \
echo "" ; \
echo "spice run tests and compare results spice" ; \
echo "ngspice run tests and compare results ngspice" ; \
echo "" ; \
echo "clean remove all previously generated simulation results"; \
echo "" ; \
echo "NOTE: if test results exist they are not resimulated" ; \
echo "NOTE: to force resimulation run \"make clean\" first" ; \
echo ""
all: spice ngspice
#####
##### spice tests
#####
spice:
@-echo ""; \
localPlatform=`$(testProgramName) -platform` ; \
localVersion=`$(testProgramName) -sv -s spice $(qaSpecFile)` ; \
localVersionAndPlatform=$$localVersion._.$$localPlatform ; \
echo "******"; \
echo "****** $(qaSpecFile) tests for spice"; \
echo "****** (for version $$localVersion on platform $$localPlatform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s spice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (spice): $$test" ; \
for variant in `$(testProgramName) -lv -s spice $(qaSpecFile)` ; \
do \
$(testProgramName) $(testProgramFlags) -s spice -r -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
for version in `ls -C1 $(qaResultsDirectory)/spice` ; \
do \
for platform in `ls -C1 $(qaResultsDirectory)/spice/$$version` ; \
do \
versionAndPlatform=$$version._.$$platform ; \
if [ $$versionAndPlatform = $$localVersionAndPlatform ] ; \
then \
break ; \
fi ; \
echo "" ; \
echo "******"; \
echo "****** Comparing previously run $(qaSpecFile) tests for spice"; \
echo "****** (for version $$version on platform $$platform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s spice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (spice): $$test" ; \
for variant in `$(testProgramName) -lv -s spice $(qaSpecFile)` ; \
do \
$(testProgramName) -c $$version $$platform -s spice -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
done ; \
done
#####
##### ngspice tests
#####
ngspice:
@-echo ""; \
localPlatform=`$(testProgramName) -platform` ; \
localVersion=`$(testProgramName) -sv -s ngspice $(qaSpecFile)` ; \
localVersionAndPlatform=$$localVersion._.$$localPlatform ; \
echo "******"; \
echo "****** $(qaSpecFile) tests for ngspice"; \
echo "****** (for version $$localVersion on platform $$localPlatform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s ngspice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (ngspice): $$test" ; \
for variant in `$(testProgramName) -lv -s ngspice $(qaSpecFile)` ; \
do \
$(testProgramName) $(testProgramFlags) -s ngspice -r -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
for version in `ls -C1 $(qaResultsDirectory)/ngspice` ; \
do \
for platform in `ls -C1 $(qaResultsDirectory)/ngspice/$$version` ; \
do \
versionAndPlatform=$$version._.$$platform ; \
if [ $$versionAndPlatform = $$localVersionAndPlatform ] ; \
then \
break ; \
fi ; \
echo "" ; \
echo "******"; \
echo "****** Comparing previously run $(qaSpecFile) tests for ngspice"; \
echo "****** (for version $$version on platform $$platform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s ngspice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (ngspice): $$test" ; \
for variant in `$(testProgramName) -lv -s ngspice $(qaSpecFile)` ; \
do \
$(testProgramName) -c $$version $$platform -s ngspice -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
done ; \
done
clean:
@/bin/rm -rf $(qaResultsDirectory)/spice b3v3check.log
@/bin/rm -rf $(qaResultsDirectory)/ngspice ngspiceCkt*

View File

@ -1,5 +1,5 @@
#!/bin/csh -fv
#!/bin/sh
make clean
../../bin/run_cmc_check clean
cp qaSpec.basic qaSpec
make ngspice | tee cmcqa_basic.log
../../bin/run_cmc_check ngspice | tee cmcqa_basic.log

View File

@ -1,135 +0,0 @@
#
# Example Makefile to run tests and check results.
#
# This is an example makefile for running QA tests on a
# model and then checking the simulated results against
# reference results. A separate target is defined for each
# variant of the model. The program runQaTests.pl runs the
# tests, and that program expects a perl module SIMULATOR.pm
# to be provided for each simulator that is tested.
# Examples of these are provided.
#
qaSpecFile = qaSpec
qaResultsDirectory = results
testProgramName = ../../bin/runQaTests.pl
testProgramFlags = -nwV
#testProgramFlags = -d
help:
@echo "" ; \
echo "Valid targets are:" ; \
echo "" ; \
echo "all run tests and compare results for all simulators" ; \
echo "" ; \
echo "spice run tests and compare results spice" ; \
echo "ngspice run tests and compare results ngspice" ; \
echo "" ; \
echo "clean remove all previously generated simulation results"; \
echo "" ; \
echo "NOTE: if test results exist they are not resimulated" ; \
echo "NOTE: to force resimulation run \"make clean\" first" ; \
echo ""
all: spice ngspice
#####
##### spice tests
#####
spice:
@-echo ""; \
localPlatform=`$(testProgramName) -platform` ; \
localVersion=`$(testProgramName) -sv -s spice $(qaSpecFile)` ; \
localVersionAndPlatform=$$localVersion._.$$localPlatform ; \
echo "******"; \
echo "****** $(qaSpecFile) tests for spice"; \
echo "****** (for version $$localVersion on platform $$localPlatform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s spice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (spice): $$test" ; \
for variant in `$(testProgramName) -lv -s spice $(qaSpecFile)` ; \
do \
$(testProgramName) $(testProgramFlags) -s spice -r -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
for version in `ls -C1 $(qaResultsDirectory)/spice` ; \
do \
for platform in `ls -C1 $(qaResultsDirectory)/spice/$$version` ; \
do \
versionAndPlatform=$$version._.$$platform ; \
if [ $$versionAndPlatform = $$localVersionAndPlatform ] ; \
then \
break ; \
fi ; \
echo "" ; \
echo "******"; \
echo "****** Comparing previously run $(qaSpecFile) tests for spice"; \
echo "****** (for version $$version on platform $$platform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s spice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (spice): $$test" ; \
for variant in `$(testProgramName) -lv -s spice $(qaSpecFile)` ; \
do \
$(testProgramName) -c $$version $$platform -s spice -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
done ; \
done
#####
##### ngspice tests
#####
ngspice:
@-echo ""; \
localPlatform=`$(testProgramName) -platform` ; \
localVersion=`$(testProgramName) -sv -s ngspice $(qaSpecFile)` ; \
localVersionAndPlatform=$$localVersion._.$$localPlatform ; \
echo "******"; \
echo "****** $(qaSpecFile) tests for ngspice"; \
echo "****** (for version $$localVersion on platform $$localPlatform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s ngspice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (ngspice): $$test" ; \
for variant in `$(testProgramName) -lv -s ngspice $(qaSpecFile)` ; \
do \
$(testProgramName) $(testProgramFlags) -s ngspice -r -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
for version in `ls -C1 $(qaResultsDirectory)/ngspice` ; \
do \
for platform in `ls -C1 $(qaResultsDirectory)/ngspice/$$version` ; \
do \
versionAndPlatform=$$version._.$$platform ; \
if [ $$versionAndPlatform = $$localVersionAndPlatform ] ; \
then \
break ; \
fi ; \
echo "" ; \
echo "******"; \
echo "****** Comparing previously run $(qaSpecFile) tests for ngspice"; \
echo "****** (for version $$version on platform $$platform)"; \
echo "******"; \
for test in `$(testProgramName) -lt -s ngspice $(qaSpecFile)` ; \
do \
echo ""; \
echo "****** Checking test (ngspice): $$test" ; \
for variant in `$(testProgramName) -lv -s ngspice $(qaSpecFile)` ; \
do \
$(testProgramName) -c $$version $$platform -s ngspice -t $$test -var $$variant $(qaSpecFile) ; \
done ; \
done ; \
done ; \
done
clean:
@/bin/rm -rf $(qaResultsDirectory)/spice b3v3check.log
@/bin/rm -rf $(qaResultsDirectory)/ngspice ngspiceCkt*

View File

@ -1,5 +1,5 @@
#!/bin/csh -fv
#!/bin/sh
make clean
../../bin/run_cmc_check clean
cp qaSpec.basic qaSpec
make ngspice | tee cmcqa_basic.log
../../bin/run_cmc_check ngspice | tee cmcqa_basic.log