From 98c0e4bdaeb91dc2932a046b620d1e274dda7996 Mon Sep 17 00:00:00 2001 From: rlar Date: Thu, 27 Jul 2017 18:25:22 +0200 Subject: [PATCH] qa tests, avoid repeated exection of ngspice for version detection --- tests/bin/runQaTests.pl | 33 ++++++++++++++++++++++++++++++--- tests/bin/run_cmc_check | 15 +++++++++++++-- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/tests/bin/runQaTests.pl b/tests/bin/runQaTests.pl index c193603d8..4605e2e8a 100755 --- a/tests/bin/runQaTests.pl +++ b/tests/bin/runQaTests.pl @@ -79,6 +79,7 @@ $listVariants=0; $onlyDoSimulatorVersion=0; $onlyDoPlatformVersion=0; $onlyDoComparison=0; +$onlyTuple=0; $forceSimulation=1; $printWarnings=1; @prog=split("/",$0); @@ -185,6 +186,14 @@ for (;;) { $verbose=1; } elsif ($ARGV[0] =~ /^-V/) { $verbose=1;$reallyVerbose=1; + } elsif ($ARGV[0] =~ /^--tuple/) { + $onlyTuple=1; + } elsif ($ARGV[0] =~ /^--version=(.*)/i) { + $version=$1; + } elsif ($ARGV[0] =~ /^--platform=(.*)/i) { + $platform=$1; + } elsif ($ARGV[0] =~ /^--vaVersion=(.*)/i) { + $vaVersion=$1; } elsif ($ARGV[0] =~ /^-/) { &usage(); die("ERROR: unknown flag $ARGV[0], stopped"); @@ -196,10 +205,10 @@ for (;;) { if ($onlyDoSimulatorVersion && !defined($simulatorName) && defined($ARGV[0])) { $simulatorName=$ARGV[0]; # assume -sv simulatorName was specified } -if ($#ARGV<0 && !$onlyDoPlatformVersion && !($onlyDoSimulatorVersion && defined($simulatorName))) { +if ($#ARGV<0 && !$onlyDoPlatformVersion && !($onlyDoSimulatorVersion && defined($simulatorName)) && !$onlyTuple) { &usage();exit(0); } -if (!$onlyDoPlatformVersion && !defined($simulatorName)) { +if (!$onlyDoPlatformVersion && !defined($simulatorName) && !$onlyTuple) { &usage();exit(0); } if(!defined($simulatorCommand)) { @@ -213,6 +222,22 @@ if(!defined($simulatorCommand)) { if (! require "$programDirectory/modelQaTestRoutines.pm") { die("ERROR: problem sourcing modelQaTestRoutines.pm, stopped"); } + +if ($onlyTuple) { + $platform = &modelQa::platform(); + if (! -r "$programDirectory/$simulatorName.pm") { + die("ERROR: there is no test routine Perl module for simulator $simulatorName, stopped"); + } + if (! require "$programDirectory/$simulatorName.pm") { + die("ERROR: problem sourcing test routine Perl module for simulator $simulatorName, stopped"); + } + ($version,$vaVersion) = &simulate::version(); + print "platform=$platform\n"; + print "version=$version\n"; + print "vaVersion=$vaVersion\n"; + exit(0); +} + if (!$onlyDoComparison) { $platform=&modelQa::platform(); if ($onlyDoPlatformVersion) { @@ -231,7 +256,9 @@ if (!$onlyDoComparison) { # if (!$onlyDoComparison) { - ($version,$vaVersion)=&simulate::version(); + if (!defined($version) || !defined($vaVersion)) { + ($version,$vaVersion)=&simulate::version(); + } if ($onlyDoSimulatorVersion) { if ($vaVersion eq "unknown") { print $version;exit(0); diff --git a/tests/bin/run_cmc_check b/tests/bin/run_cmc_check index 830bd49ee..36bac4bea 100755 --- a/tests/bin/run_cmc_check +++ b/tests/bin/run_cmc_check @@ -44,8 +44,13 @@ run_test() { simname="$1" - localPlatform=`${testProgramName} -platform` - localVersion=`${testProgramName} ${testProgramFlags} -sv -s ${simname} ${qaSpecFile}` + for i in $(${testProgramName} ${testProgramFlags} -s ${simname} --tuple) ; do + case "${i%%=*}" in + platform) localPlatform="${i#*=}";; + version) localVersion="${i#*=}";; + vaVersion) localVaVersion="${i#*=}";; + esac + done echo "" echo "******" @@ -64,6 +69,9 @@ run_test() { -s ${simname} \ -r -t ${test} \ -var ${variant} \ + --version=${localVersion} \ + --vaVersion=${localVaVersion} \ + --platform=${platform} \ --results=${qaResultsDirectory} \ ${qaSpecFile} done @@ -94,6 +102,9 @@ run_test() { -s ${simname} \ -t ${test} \ -var ${variant} \ + --version=${localVersion} \ + --vaVersion=${localVaVersion} \ + --platform=${platform} \ --results=${qaResultsDirectory} \ ${qaSpecFile} done