14 my $build_failure_count=0;
26 my $executed_testcases=0;
27 my $execute_no_file=0;
36 ($num, $scen, $ref) = split(m!\|!, $_);
41 ($v, $time, $date) = split(/\s/, $scen);
44 elsif($num == 10) # 10|0 /dali-test-suite/actors/utc-Dali-Actor 16:58:27|TC Start, scenario ref 2-0
46 ($part, $testcase, $timestamp) = split(/\s/, $scen);
47 $executed_testcases++;
49 elsif($num == 50) # 50||(exec.c, 131): can't exec /home/SERILOCAL/david.steele/Git/HQ-Dali/dali-core/automated-tests/./tet_tmp_dir/24242aa/dali-test-suite/geometry/utc-Dali-MeshData, reply code = ER_NOENT
53 elsif($num == 80) # 80|19 0 16:58:47|TC End, scenario ref 21-0
56 elsif($num == 400) #400|13 1 142 16:58:40|IC Start
58 ($test, $ic, $x, $timestamp) = split(/\s/, $scen);
60 elsif($num == 410) #410|19 1 9 16:58:46|IC End
63 elsif($num == 200) #200|13 1 16:58:40|TP Start
65 $execute_summary{"Total"}++;
69 ($test, $tc, $ic2, $timestamp) = split(/\s/, $scen);
70 $execute{$testcase}->{$ic}->{$tc} = $ref;
71 $execute_summary{$ref}++;
76 elsif($num == 110) # Build
78 ($part, $testcase, $timestamp) = split(/\s/, $scen);
81 $build_summary{"Total"}++;
86 if( ( $ref =~ /utc-/ && $ref =~ m!error!i )
88 ($ref =~ /^Makefile/ && $ref =~ m!Stop!i )
90 ($ref =~ /^make/ && ($ref =~ m!Stop!i || $ref =~ m!Error 1! ) ) )
100 $build_failure_count++;
101 $build_summary{"Failure"}++;
105 $build_summary{"Success"}++;
107 $build_tests{$testcase} = !$build_failed;
110 $built = $build_count - $build_failure_count;
117 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
118 "http://www.w3.org/TR/REC-html40/loose.dtd">
121 <title>TETware Test Run Report</title>
123 <body bgcolor="white">
124 <p><table border="1" width="100%" cellpadding="3" cellspacing="0">
125 <tr><td bgcolor="#ccccff" class="heading1"><center><h1>
126 TETware Test Run Report</h1></center></td></tr></table></p>
127 <p><table border="0" cellpadding="2" cellspacing="1">
129 <td align="left" class="noborder">Date of test run:</td>
130 <td align="left" class="noborder">$date</td>
133 <td align="left" class="noborder">Start time:</td>
134 <td align="left" class="noborder">$time</td>
144 my $summary_ref = shift;
147 <p><table border="1" cellpadding="3" cellspacing="0">
148 <tr><td bgcolor="#ccccff" class="heading2"><font size="+2"><b>$heading</b></font></td></tr>
150 <p><table border="0" cellpadding="5" cellspacing="4">
152 <td align="center" bgcolor="#cccccc" class="neutral"><b>Result</b></td>
153 <td align="center" bgcolor="#cccccc" class="neutral"><b>Count</b></td>
157 my ($success_string, @blah) = grep(/(Success|PASS)/, keys(%$summary_ref));
158 my $successes = $summary_ref->{$success_string};
161 <td align="left" bgcolor="#33cc33" class="success">$success_string</td>
162 <td align="right" bgcolor="#33cc33" class="success">$successes</td>
166 foreach my $key (sort(grep(!/(Success|PASS|Total)/, keys(%$summary_ref))))
168 my $fails = $summary_ref->{$key};
171 <td align="left" bgcolor="#ff5555" class="failure">$key</td>
172 <td align="right" bgcolor="#ff5555" class="failure">$fails</td>
177 my $total = $summary_ref->{"Total"};
180 <td align="left" bgcolor="#cccccc" class="neutral"><b>Total</b></td>
181 <td align="right" bgcolor="#cccccc" class="neutral"><b>$total</b></td>
192 <p><table border="1" cellpadding="3" cellspacing="0">
193 <tr><td bgcolor="#ccccff" class="heading2"><font size="+2"><b>
194 Build mode result breakdown</b></font></td></tr></table></p>
195 <p><table border="0" cellpadding="5" cellspacing="4">
197 <td align="center" bgcolor="#cccccc" class="neutral"><b>Testcase</b></td>
198 <td align="center" bgcolor="#cccccc" class="neutral"><b>Result</b></td>
202 foreach my $key (sort(keys(%build_tests)))
204 my $success = $build_tests{$key};
205 my $class = $success?"success":"failure";
206 my $Class = $success?"Success":"Failure";
207 my $color = $success?"#33cc33":"#ff5555";
208 print("<tr><td align=\"left\" bgcolor=\"$color\" class=\"$class\">$key</td>\n");
209 print("<td align=\"left\" bgcolor=\"$color\" class=\"$class\">$Class</td>\n");
211 print("</table><p>");
215 sub execute_breakdown
219 <p><table border="1" cellpadding="3" cellspacing="0">
220 <tr><td bgcolor="#ccccff" class="heading2"><font size="+2"><b>
221 Execute mode result breakdown</b></font></td></tr></table></p>
225 #$execute{$testcase}->{$ic}->{$tc} = $ref;
228 foreach my $testcase (sort(keys(%execute)))
230 #print STDOUT "$testcase\n";
231 foreach my $ic (sort(keys(%{$execute{$testcase}})))
233 my $ic_ref = $execute{$testcase}->{$ic};
234 foreach my $tc (sort { $a <=> $b } (keys(%{$ic_ref})))
236 my $result = $execute{$testcase}->{$ic}->{$tc};
238 $results{$result}->{$testcase} .= ", $ic.$tc";
239 #print STDOUT "$testcase $ic.$tc $result\n";
240 #print STDOUT "STRUCT:" . "\$results\{" . $result . "\}->\{$testcase\} => " . $results{$result}->{$testcase} . "\n";
245 foreach my $result ( "PASS", (sort(grep(!/PASS/, keys(%results)))))
247 print "<h3>$result</h3>\n";
249 <p><table border="0" cellpadding="5" cellspacing="4">
251 <td align="center" bgcolor="#cccccc" class="neutral"><b>Testcase</b></td>
252 <td align="center" bgcolor="#cccccc" class="neutral"><b>Test purposes (IC.TP)</b></td>
256 my $bgcolor = "#ff5555";
257 if ($result =~ /PASS/)
259 $bgcolor = "#33cc33";
262 #print STDOUT "Result: $result OUT:" . $results{$result} . "\n";
263 foreach my $testcase (sort(keys(%{$results{$result}})))
265 #print STDOUT "$testcase\n";
266 my $tests = substr($results{$result}->{$testcase}, 2);
269 <td align="left" bgcolor=$bgcolor class=$result>$testcase</td>
270 <td align="left" bgcolor=$bgcolor class=$result>$tests</td>
281 print "<hr>\n</body>\n</html>\n";
287 open(my $fh, ">", $file) || die "Can't create $file";
293 summary("Build mode summary", \%build_summary);
296 if(scalar(keys(%execute)))
298 summary("Execute mode summary", \%execute_summary);
309 die "No args" if scalar(@ARGV) == 0;
310 my $htmlname = $ARGV[0];
311 $htmlname =~ s/.journal/.html/;
319 foreach my $key (sort(keys(%build_tests)))
321 if(!$build_tests{$key})
323 print STDOUT "$key: Failed\n";
326 print STDOUT "Built $built of $build_count\n";
331 my $num_exes=$executed_testcases-$execute_no_file;
332 print STDOUT "Executed $num_exes of $executed_testcases testcases\n";
333 my $passed = $execute_summary{"PASS"};
334 my $total = $execute_summary{"Total"};
335 my $passRate = ($num_exes / $executed_testcases ) * ( $passed / $total )*100;
336 print STDOUT "Passed $passed of $total - Pass rate=" . sprintf("%4.1f%%", $passRate) ."\n";
339 print "Report output: $htmlname\n";