cryptomgmtlibs/securitytestfw/test/autotesting/newdigest.pl
changeset 8 35751d3474b7
parent 0 2c201484c85f
child 15 da2ae96f639b
equal deleted inserted replaced
2:675a964f4eb5 8:35751d3474b7
    39 	}
    39 	}
    40 	
    40 	
    41 	opendir( DIR, "." ) or die("Unable to open directory");
    41 	opendir( DIR, "." ) or die("Unable to open directory");
    42 	my @dirs = readdir DIR;
    42 	my @dirs = readdir DIR;
    43 	my $entry;
    43 	my $entry;
    44 	my $failed = 0;
    44 	
    45 	my $notests = 0;
    45 	my $nTotalTestCase = 0;
    46 
    46 	my $nTotalPassedCase = 0;
       
    47 	my $nTotalFailedCase = 0;
       
    48 	my $nTotalPassedStep = 0;
       
    49 	my $nTotalFailedStep = 0;
       
    50 	my $scriptsRun = 0;
    47 	open (SUMMARY, ">$log_file") || die "couldn't open digest file: $!";
    51 	open (SUMMARY, ">$log_file") || die "couldn't open digest file: $!";
    48 	
    52 	
    49 	foreach $entry ( sort @dirs )
    53 	foreach $entry ( sort @dirs )
    50 	{
    54 	{
    51 		next if ( $entry eq ".." or $entry eq "." );
    55 		next if ( $entry eq ".." or $entry eq "." );
    52 		next if ( -d $entry );
    56 		next if ( -d $entry );
    53 		
    57 
       
    58 		my $failed = 0;
       
    59 		my $passed = 0;
       
    60 		my $ntestcasepassed = 0;
       
    61 		my $ntestcasefailed = 0;
       
    62 
    54 		if ( $entry =~ /\.log/ || $entry =~ /\.txt/)
    63 		if ( $entry =~ /\.log/ || $entry =~ /\.txt/)
    55 		{
    64 		{
    56 			parseLog($entry, \$failed, \$notests);
    65 			parseLog($entry, \$failed, \$passed);
       
    66 			#printf SUMMARY (" %45s: %d tests failed out of %d\r\n", $entry, $failed, $failed+$passed);			
    57 		}
    67 		}
    58 		elsif ($entry =~ /\.htm/) 
    68 		elsif ($entry =~ /\.htm/) 
    59 		{
    69 		{
    60 			parseHtm($entry, \$failed, \$notests);
    70 			parseHtm($entry, \$failed, \$passed, \$ntestcasefailed, \$ntestcasepassed);
    61 		}
    71 			#printf SUMMARY (" %45s: %d tests failed out of %d\r\n", $entry, $ntestcasefailed, $ntestcasepassed+$ntestcasefailed);
    62 	}
    72 		}
    63 	
    73 		if ( $passed > 0 or $failed > 0)
    64 	print SUMMARY "\r\nPassed\tFailed\tTotal\r\n";
    74 		{
    65 	printf SUMMARY ("%d\t%d\t%d\n", $notests-$failed, $failed, $notests);
    75 			$scriptsRun++;
       
    76 			$nTotalPassedStep += $passed;
       
    77 			$nTotalFailedStep += $failed;
       
    78 
       
    79 			if ( $ntestcasepassed > 0 || $ntestcasefailed > 0 )
       
    80 			{
       
    81 			$nTotalPassedCase += $ntestcasepassed;
       
    82 			$nTotalFailedCase += $ntestcasefailed;
       
    83 			}
       
    84 			else
       
    85 			{
       
    86 			if ( $failed > 0 )
       
    87 			{
       
    88 			$nTotalFailedCase++;
       
    89 			}
       
    90 			else
       
    91 			{
       
    92 			$nTotalPassedCase++;
       
    93 			}
       
    94 			}
       
    95 		}
       
    96 	}
       
    97 	my $ntestScripts = " Test Scripts Run \t";
       
    98 	print SUMMARY "\n";	
       
    99 	print SUMMARY ($scriptsRun, $ntestScripts);
       
   100 	
       
   101 	my $nTotalTestCases = $nTotalFailedCase+$nTotalPassedCase;	
       
   102 	print SUMMARY "\n";	
       
   103 	print SUMMARY "\r\nTest Cases\tPassed\tFailed\tTotal\r\n";
       
   104 	printf SUMMARY ("\t\t%d\t%d\t%d\n", $nTotalPassedCase, $nTotalFailedCase, $nTotalTestCases);
       
   105 	if ($nTotalTestCases > 0)
       
   106 	{
       
   107 	print SUMMARY "\r\n\t\t%Passed\t\t%Failed\r\n";	
       
   108 	printf SUMMARY ("\t\t%.2f\t\t%.2f\r\n", $nTotalPassedCase/$nTotalTestCases*100, $nTotalFailedCase/$nTotalTestCases*100);	
       
   109 	}
       
   110 	my $nTotalTestSteps = $nTotalPassedStep+$nTotalFailedStep;
    66 	print SUMMARY "\n";
   111 	print SUMMARY "\n";
    67 	
   112 	print SUMMARY "\r\nTest Steps\tPassed\tFailed\tTotal\r\n";
    68 	print SUMMARY "\r\n%Passed\t\t%Failed\r\n";
   113 	printf SUMMARY ("\t\t%d\t%d\t%d\n", $nTotalPassedStep, $nTotalFailedStep, $nTotalTestSteps);
    69 	printf SUMMARY ("%.2f\t\t%.2f\r\n", 100-$failed/$notests*100, $failed/$notests*100);
   114 	if ($nTotalTestSteps > 0)
       
   115 	{
       
   116 	print SUMMARY "\r\n\t\t%Passed\t\t%Failed\r\n";
       
   117 	printf SUMMARY ("\t\t%.2f\t\t%.2f\r\n", $nTotalPassedStep/$nTotalTestSteps*100, $nTotalFailedStep/$nTotalTestSteps*100);
       
   118 	}
    70 }
   119 }
    71 
   120 
    72 
   121 
    73 sub parseLog($$$) {
   122 sub parseLog($$$) {
    74 	my ($entry, $failed, $notests) = @_;
   123 	my ($entry, $failed, $passed) = @_;
    75 
   124 
    76     open (LOG, "$entry" ) or die("open failed");
   125     open (LOG, "$entry" ) or die("open failed");
    77     my $found = "false";
   126     my $found = "false";
       
   127 	my $notests = 0;
    78     while(<LOG>)
   128     while(<LOG>)
    79     {
   129     {
    80 	chomp;
   130 	chomp;
    81 	
   131 	
    82 	my $line  = $_;
   132 	my $line  = $_;
    84 	if ($line =~ /tests failed/)
   134 	if ($line =~ /tests failed/)
    85 	{
   135 	{
    86 	    $line =~ /(\d+) tests failed out of (\d+)/;
   136 	    $line =~ /(\d+) tests failed out of (\d+)/;
    87 	    printf SUMMARY (" %45s: %s\r\n", $entry, $&);
   137 	    printf SUMMARY (" %45s: %s\r\n", $entry, $&);
    88 	    $found = "true";
   138 	    $found = "true";
    89 	    $$failed += $1;
   139 	    $$failed = $1;
    90 	    $$notests += $2;
   140 	    $notests = $2;
    91 	}
   141 	}
    92     }
   142     }
    93     close LOG;
   143     close LOG;
    94 
   144 
    95     if ( $found eq "false" && $entry ne "buildid.txt")
   145     if ( $found eq "false" && $entry ne "buildid.txt")
    96     {
   146     {
    97 	printf SUMMARY ("WARNING: Could not parse file %s\r\n", $entry);
   147 	printf SUMMARY ("WARNING: Could not parse file %s\r\n", $entry);
    98     }
   148     }
       
   149 	$$passed = $notests - $$failed;
    99 }
   150 }
   100 
   151 
   101 sub parseHtm($$$) {
   152 sub parseHtm($$$$$) {
   102 	my ($entry, $failed, $notests) = @_;
   153 	my ($entry, $nfailed, $npassed, $nCasesFailed, $nCasesPassed) = @_;
   103     my ($textfile);
   154     my ($textfile);
   104     $textfile = $entry;
   155     $textfile = $entry;
   105     $textfile =~ s/\.htm/\.log/;
   156     $textfile =~ s/\.htm/\.log/;
   106     next if ( -f $textfile);
   157     next if ( -f $textfile);
   107 	
   158 	
   108     my $total = 0;
   159     my $ncasestotal = 0;
   109     my $pass = 0;
   160 	my $nstepstotal = 0;
   110     my $unknown = 0;
   161 	my $passed = 0;
   111     my $fail = 0;
   162 	my $failed = 0;
       
   163 	my $casepassed = 0;
       
   164 	my $casefailed = 0;
       
   165 	my $TEST_STEP_SECTION = 0;
       
   166 	my $TEST_CASE_SECTION = 0;
       
   167 	my $noTestCase = 0;
       
   168 	
       
   169 	
   112     open (LOG, $entry) || die "couldn't open $entry: $!";
   170     open (LOG, $entry) || die "couldn't open $entry: $!";
   113     while (<LOG>)
   171     while (<LOG>)
   114     {
   172     {
   115 	my ($line) = $_;
   173 		my ($sLine) = $_;
   116 	if ($line =~ /PASS = (\d+)/)
   174 	
   117 	{
   175 		if ( $sLine =~ /TEST STEP SUMMARY:<\/font>/i) 
   118 	    $pass += $1;
   176 		{
   119 	}
   177 			$TEST_STEP_SECTION = 1;
   120 	elsif ($line =~ /FAIL = (\d+)/)
   178 			$TEST_CASE_SECTION = 0;
   121 	{
   179 		}
   122 	    $fail += $1;
   180 		elsif ( $sLine =~ /RUN PROGRAM SUMMARY:<\/font>/i) 
   123 	}
   181 		{
   124 	elsif ($line =~ /ABORT = (\d+)/)
   182 			$TEST_STEP_SECTION = 0;
   125 	{
   183 		}
   126 	    $unknown += $1;
   184 	        elsif( $sLine =~ /TEST CASE SUMMARY:<\/font>/i)
   127 	}
   185 		{
   128 	elsif ($line =~ /PANIC = (\d+)/)
   186 			$TEST_CASE_SECTION = 1;
   129 	{
   187 			$TEST_STEP_SECTION = 0;
   130 	    $unknown += $1;
   188 		}		
   131 	}
   189 		elsif ( $sLine =~ /SUMMARY:<\/font>/i ) # To Keep Last
   132 	elsif ($line =~ /INCONCLUSIVE = (\d+)/)
   190 		{
   133 	{
   191 			$TEST_STEP_SECTION = 1;
   134 	    $unknown += $1;
   192 			$noTestCase = 1;
   135 	}
   193 		}
   136 	elsif ($line =~ /UNKNOWN = (\d+)/)
   194 	
   137 	{
   195 		if ( $TEST_STEP_SECTION )
   138 	    $unknown += $1;
   196 		{
   139 	}
   197 			$passed += $1 if( $sLine =~ /<font.*color=00AF00> PASS = (\d+)<\/font>/i);
   140 	elsif ($line =~ /UNEXECUTED = (\d+)/)
   198 			$passed += $1 if( $sLine =~ /<font.*color=00AF00>PASS = (\d+)<\/font>/i);
   141 	{
   199 			$failed += $1 if( $sLine =~ /<font.*color=FF0000>FAIL = (\d+)<\/font>/i);
   142 	    $unknown += $1;
   200 			$failed += $1 if( $sLine =~ /<font.*color=0000FF>ABORT = (\d+)<\/font>/i);
   143 	}
   201 			$failed += $1 if( $sLine =~ /<font.*color=0000FF>PANIC = (\d+)<\/font>/i);
       
   202 			$failed += $1 if( $sLine =~ /<font.*color=0000FF>INCONCLUSIVE = (\d+)<\/font>/i);
       
   203 			$failed += $1 if( $sLine =~ /<font.*color=0000FF>UNKNOWN = (\d+)<\/font>/i);
       
   204 			$failed += $1 if( $sLine =~ /<font.*color=0000FF>UNEXECUTED = (\d+)<\/font>/i);
       
   205 		}
       
   206 		if ( $TEST_CASE_SECTION )
       
   207 		{
       
   208 			$casepassed += $1 if( $sLine =~ /<font.*color=00AF00> PASS = (\d+)<\/font>/i);
       
   209 			$casepassed += $1 if( $sLine =~ /<font.*color=00AF00>PASS = (\d+)<\/font>/i);
       
   210 			$casefailed += $1 if( $sLine =~ /<font.*color=FF0000>FAIL = (\d+)<\/font>/i);
       
   211 			$casefailed += $1 if( $sLine =~ /<font.*color=0000FF>ABORT = (\d+)<\/font>/i);
       
   212 			$casefailed += $1 if( $sLine =~ /<font.*color=0000FF>PANIC = (\d+)<\/font>/i);
       
   213 			$casefailed += $1 if( $sLine =~ /<font.*color=0000FF>INCONCLUSIVE = (\d+)<\/font>/i);
       
   214 			$casefailed += $1 if( $sLine =~ /<font.*color=0000FF>UNKNOWN = (\d+)<\/font>/i);
       
   215 			$casefailed += $1 if( $sLine =~ /<font.*color=0000FF>UNEXECUTED = (\d+)<\/font>/i);
       
   216 		}
   144     }
   217     }
   145 	$total = $pass + $fail + $unknown;
   218 	$ncasestotal = $casefailed + $casepassed;
       
   219 	$nstepstotal = $passed + $failed;
       
   220 	
   146     close LOG;
   221     close LOG;
   147 	if($total != 0)
   222 	if($ncasestotal != 0 or $noTestCase == 1) 
   148 	{
   223 	{
   149 	  printf SUMMARY (" %45s: %d tests failed out of %d\r\n", $entry, $total-$pass, $total);
   224 	  printf SUMMARY (" %45s: %d tests failed out of %d\r\n", $entry, $failed, $nstepstotal);
   150 	}
   225 	}
   151 	else
   226 	else
   152 	{
   227 	{
   153 	  printf SUMMARY ("WARNING: %45s: %d tests failed out of %d\r\n", $entry, $total-$pass, $total);
   228 	  printf SUMMARY ("WARNING: %45s: %d tests failed out of %d\r\n", $entry, $failed, $nstepstotal);
   154 	}
   229 	}
   155     $$notests += $total;
   230 	$$npassed = $passed;
   156     $$failed += $fail + $unknown;
   231 	$$nfailed = $failed;
       
   232 	$$nCasesPassed = $casepassed;
       
   233 	$$nCasesFailed = $casefailed;
   157 }
   234 }
       
   235 
       
   236 
       
   237 
       
   238 
       
   239 
       
   240