12 my $num_actual_passes=0;
17 my ($p, $elt, %attrs) = @_;
19 if($elt =~ /testcase/)
22 if($attrs{"result"} eq "PASS")
27 if($elt =~ /actual_result/)
36 if($elt =~ /actual_result/)
52 my($parser) = new XML::Parser(Handlers => {Start => \&handle_start,
54 Char => \&handle_char});
58 open SUMMARY, ">summary.xml" || die "Can't open summary.xml for writing:$!\n";
59 print SUMMARY << "EOS";
60 <?xml version="1.0" encoding="UTF-8"?>
61 <?xml-stylesheet type="text/xsl" href="./style/summary.xsl"?>
62 <result_summary plan_name="Core">
63 <other xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string" />
64 <summary test_plan_name="Empty test_plan_name">
65 <start_at>2014-03-21_18_52_41</start_at>
66 <end_at>2014-03-21_18_57_54</end_at>
70 print "\n\nSummary of all tests:\n";
71 my $output_files = `ls tct*core-tests.xml`;
73 foreach $file (split /\s+/, $output_files )
80 $parser->parsefile($file);
82 my $pass_rate = sprintf("%5.2f", $num_passes * 100.0 / $num_tests);
83 my $num_fails = $num_tests - $num_passes;
84 my $fail_rate = sprintf("%5.2f", $num_fails * 100.0 / $num_tests);
86 my $suite_name = $file;
87 $suite_name =~ s/\.xml$//;
89 print "$suite_name: $num_passes tests passed out of $num_tests ( $pass_rate% )\n";
91 print SUMMARY << "EOS2";
92 <suite name="$suite_name">
93 <total_case>$num_tests</total_case>
94 <pass_case>$num_passes</pass_case>
95 <pass_rate>$pass_rate</pass_rate>
96 <fail_case>$num_fails</fail_case>
97 <fail_rate>$fail_rate</fail_rate>
98 <block_case>0</block_case>
99 <block_rate>0.00</block_rate>
101 <na_rate>0.00</na_rate>
106 print SUMMARY "</result_summary>\n";
109 print "Summary of results written to summary.xml\n";