diff -r 675a964f4eb5 -r 35751d3474b7 cryptomgmtlibs/securitytestfw/test/autotesting/newdigest.pl --- a/cryptomgmtlibs/securitytestfw/test/autotesting/newdigest.pl Tue Jul 21 01:04:32 2009 +0100 +++ b/cryptomgmtlibs/securitytestfw/test/autotesting/newdigest.pl Thu Sep 10 14:01:51 2009 +0300 @@ -1,157 +1,240 @@ -# -# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -# All rights reserved. -# This component and the accompanying materials are made available -# under the terms of the License "Eclipse Public License v1.0" -# which accompanies this distribution, and is available -# at the URL "http://www.eclipse.org/legal/epl-v10.html". -# -# Initial Contributors: -# Nokia Corporation - initial contribution. -# -# Contributors: -# -# Description: -# - - -use strict; -use Getopt::Long; -use IO::Handle; -use IO::Seekable; -use File::Basename; - -main(); -exit(0); - -sub main { - if ($#ARGV != 0) - { - print "usage: newdigest.pl \n"; - exit; - } - - my ($log_file) = $ARGV[0]; - - if (-f $log_file) - { - system ("del $log_file"); - } - - opendir( DIR, "." ) or die("Unable to open directory"); - my @dirs = readdir DIR; - my $entry; - my $failed = 0; - my $notests = 0; - - open (SUMMARY, ">$log_file") || die "couldn't open digest file: $!"; - - foreach $entry ( sort @dirs ) - { - next if ( $entry eq ".." or $entry eq "." ); - next if ( -d $entry ); - - if ( $entry =~ /\.log/ || $entry =~ /\.txt/) - { - parseLog($entry, \$failed, \$notests); - } - elsif ($entry =~ /\.htm/) - { - parseHtm($entry, \$failed, \$notests); - } - } - - print SUMMARY "\r\nPassed\tFailed\tTotal\r\n"; - printf SUMMARY ("%d\t%d\t%d\n", $notests-$failed, $failed, $notests); - print SUMMARY "\n"; - - print SUMMARY "\r\n%Passed\t\t%Failed\r\n"; - printf SUMMARY ("%.2f\t\t%.2f\r\n", 100-$failed/$notests*100, $failed/$notests*100); -} - - -sub parseLog($$$) { - my ($entry, $failed, $notests) = @_; - - open (LOG, "$entry" ) or die("open failed"); - my $found = "false"; - while() - { - chomp; - - my $line = $_; - $line =~ s/\x0//g; - if ($line =~ /tests failed/) - { - $line =~ /(\d+) tests failed out of (\d+)/; - printf SUMMARY (" %45s: %s\r\n", $entry, $&); - $found = "true"; - $$failed += $1; - $$notests += $2; - } - } - close LOG; - - if ( $found eq "false" && $entry ne "buildid.txt") - { - printf SUMMARY ("WARNING: Could not parse file %s\r\n", $entry); - } -} - -sub parseHtm($$$) { - my ($entry, $failed, $notests) = @_; - my ($textfile); - $textfile = $entry; - $textfile =~ s/\.htm/\.log/; - next if ( -f $textfile); - - my $total = 0; - my $pass = 0; - my $unknown = 0; - my $fail = 0; - open (LOG, $entry) || die "couldn't open $entry: $!"; - while () - { - my ($line) = $_; - if ($line =~ /PASS = (\d+)/) - { - $pass += $1; - } - elsif ($line =~ /FAIL = (\d+)/) - { - $fail += $1; - } - elsif ($line =~ /ABORT = (\d+)/) - { - $unknown += $1; - } - elsif ($line =~ /PANIC = (\d+)/) - { - $unknown += $1; - } - elsif ($line =~ /INCONCLUSIVE = (\d+)/) - { - $unknown += $1; - } - elsif ($line =~ /UNKNOWN = (\d+)/) - { - $unknown += $1; - } - elsif ($line =~ /UNEXECUTED = (\d+)/) - { - $unknown += $1; - } - } - $total = $pass + $fail + $unknown; - close LOG; - if($total != 0) - { - printf SUMMARY (" %45s: %d tests failed out of %d\r\n", $entry, $total-$pass, $total); - } - else - { - printf SUMMARY ("WARNING: %45s: %d tests failed out of %d\r\n", $entry, $total-$pass, $total); - } - $$notests += $total; - $$failed += $fail + $unknown; -} +# +# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of the License "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# + + +use strict; +use Getopt::Long; +use IO::Handle; +use IO::Seekable; +use File::Basename; + +main(); +exit(0); + +sub main { + if ($#ARGV != 0) + { + print "usage: newdigest.pl \n"; + exit; + } + + my ($log_file) = $ARGV[0]; + + if (-f $log_file) + { + system ("del $log_file"); + } + + opendir( DIR, "." ) or die("Unable to open directory"); + my @dirs = readdir DIR; + my $entry; + + my $nTotalTestCase = 0; + my $nTotalPassedCase = 0; + my $nTotalFailedCase = 0; + my $nTotalPassedStep = 0; + my $nTotalFailedStep = 0; + my $scriptsRun = 0; + open (SUMMARY, ">$log_file") || die "couldn't open digest file: $!"; + + foreach $entry ( sort @dirs ) + { + next if ( $entry eq ".." or $entry eq "." ); + next if ( -d $entry ); + + my $failed = 0; + my $passed = 0; + my $ntestcasepassed = 0; + my $ntestcasefailed = 0; + + if ( $entry =~ /\.log/ || $entry =~ /\.txt/) + { + parseLog($entry, \$failed, \$passed); + #printf SUMMARY (" %45s: %d tests failed out of %d\r\n", $entry, $failed, $failed+$passed); + } + elsif ($entry =~ /\.htm/) + { + parseHtm($entry, \$failed, \$passed, \$ntestcasefailed, \$ntestcasepassed); + #printf SUMMARY (" %45s: %d tests failed out of %d\r\n", $entry, $ntestcasefailed, $ntestcasepassed+$ntestcasefailed); + } + if ( $passed > 0 or $failed > 0) + { + $scriptsRun++; + $nTotalPassedStep += $passed; + $nTotalFailedStep += $failed; + + if ( $ntestcasepassed > 0 || $ntestcasefailed > 0 ) + { + $nTotalPassedCase += $ntestcasepassed; + $nTotalFailedCase += $ntestcasefailed; + } + else + { + if ( $failed > 0 ) + { + $nTotalFailedCase++; + } + else + { + $nTotalPassedCase++; + } + } + } + } + my $ntestScripts = " Test Scripts Run \t"; + print SUMMARY "\n"; + print SUMMARY ($scriptsRun, $ntestScripts); + + my $nTotalTestCases = $nTotalFailedCase+$nTotalPassedCase; + print SUMMARY "\n"; + print SUMMARY "\r\nTest Cases\tPassed\tFailed\tTotal\r\n"; + printf SUMMARY ("\t\t%d\t%d\t%d\n", $nTotalPassedCase, $nTotalFailedCase, $nTotalTestCases); + if ($nTotalTestCases > 0) + { + print SUMMARY "\r\n\t\t%Passed\t\t%Failed\r\n"; + printf SUMMARY ("\t\t%.2f\t\t%.2f\r\n", $nTotalPassedCase/$nTotalTestCases*100, $nTotalFailedCase/$nTotalTestCases*100); + } + my $nTotalTestSteps = $nTotalPassedStep+$nTotalFailedStep; + print SUMMARY "\n"; + print SUMMARY "\r\nTest Steps\tPassed\tFailed\tTotal\r\n"; + printf SUMMARY ("\t\t%d\t%d\t%d\n", $nTotalPassedStep, $nTotalFailedStep, $nTotalTestSteps); + if ($nTotalTestSteps > 0) + { + print SUMMARY "\r\n\t\t%Passed\t\t%Failed\r\n"; + printf SUMMARY ("\t\t%.2f\t\t%.2f\r\n", $nTotalPassedStep/$nTotalTestSteps*100, $nTotalFailedStep/$nTotalTestSteps*100); + } +} + + +sub parseLog($$$) { + my ($entry, $failed, $passed) = @_; + + open (LOG, "$entry" ) or die("open failed"); + my $found = "false"; + my $notests = 0; + while() + { + chomp; + + my $line = $_; + $line =~ s/\x0//g; + if ($line =~ /tests failed/) + { + $line =~ /(\d+) tests failed out of (\d+)/; + printf SUMMARY (" %45s: %s\r\n", $entry, $&); + $found = "true"; + $$failed = $1; + $notests = $2; + } + } + close LOG; + + if ( $found eq "false" && $entry ne "buildid.txt") + { + printf SUMMARY ("WARNING: Could not parse file %s\r\n", $entry); + } + $$passed = $notests - $$failed; +} + +sub parseHtm($$$$$) { + my ($entry, $nfailed, $npassed, $nCasesFailed, $nCasesPassed) = @_; + my ($textfile); + $textfile = $entry; + $textfile =~ s/\.htm/\.log/; + next if ( -f $textfile); + + my $ncasestotal = 0; + my $nstepstotal = 0; + my $passed = 0; + my $failed = 0; + my $casepassed = 0; + my $casefailed = 0; + my $TEST_STEP_SECTION = 0; + my $TEST_CASE_SECTION = 0; + my $noTestCase = 0; + + + open (LOG, $entry) || die "couldn't open $entry: $!"; + while () + { + my ($sLine) = $_; + + if ( $sLine =~ /TEST STEP SUMMARY:<\/font>/i) + { + $TEST_STEP_SECTION = 1; + $TEST_CASE_SECTION = 0; + } + elsif ( $sLine =~ /RUN PROGRAM SUMMARY:<\/font>/i) + { + $TEST_STEP_SECTION = 0; + } + elsif( $sLine =~ /TEST CASE SUMMARY:<\/font>/i) + { + $TEST_CASE_SECTION = 1; + $TEST_STEP_SECTION = 0; + } + elsif ( $sLine =~ /SUMMARY:<\/font>/i ) # To Keep Last + { + $TEST_STEP_SECTION = 1; + $noTestCase = 1; + } + + if ( $TEST_STEP_SECTION ) + { + $passed += $1 if( $sLine =~ / PASS = (\d+)<\/font>/i); + $passed += $1 if( $sLine =~ /PASS = (\d+)<\/font>/i); + $failed += $1 if( $sLine =~ /FAIL = (\d+)<\/font>/i); + $failed += $1 if( $sLine =~ /ABORT = (\d+)<\/font>/i); + $failed += $1 if( $sLine =~ /PANIC = (\d+)<\/font>/i); + $failed += $1 if( $sLine =~ /INCONCLUSIVE = (\d+)<\/font>/i); + $failed += $1 if( $sLine =~ /UNKNOWN = (\d+)<\/font>/i); + $failed += $1 if( $sLine =~ /UNEXECUTED = (\d+)<\/font>/i); + } + if ( $TEST_CASE_SECTION ) + { + $casepassed += $1 if( $sLine =~ / PASS = (\d+)<\/font>/i); + $casepassed += $1 if( $sLine =~ /PASS = (\d+)<\/font>/i); + $casefailed += $1 if( $sLine =~ /FAIL = (\d+)<\/font>/i); + $casefailed += $1 if( $sLine =~ /ABORT = (\d+)<\/font>/i); + $casefailed += $1 if( $sLine =~ /PANIC = (\d+)<\/font>/i); + $casefailed += $1 if( $sLine =~ /INCONCLUSIVE = (\d+)<\/font>/i); + $casefailed += $1 if( $sLine =~ /UNKNOWN = (\d+)<\/font>/i); + $casefailed += $1 if( $sLine =~ /UNEXECUTED = (\d+)<\/font>/i); + } + } + $ncasestotal = $casefailed + $casepassed; + $nstepstotal = $passed + $failed; + + close LOG; + if($ncasestotal != 0 or $noTestCase == 1) + { + printf SUMMARY (" %45s: %d tests failed out of %d\r\n", $entry, $failed, $nstepstotal); + } + else + { + printf SUMMARY ("WARNING: %45s: %d tests failed out of %d\r\n", $entry, $failed, $nstepstotal); + } + $$npassed = $passed; + $$nfailed = $failed; + $$nCasesPassed = $casepassed; + $$nCasesFailed = $casefailed; +} + + + + + +