Added config section to stylesheet
[platform/core/uifw/dali-toolkit.git] / automated-tests / scripts / summarize.pl
1 #!/usr/bin/perl
2
3 # Generates an XML summary of test cases from Test-kit lite output XML.
4
5 use strict;
6 use XML::Parser;
7 use Encode;
8 use Getopt::Long;
9 use Cwd;
10
11 my $pwd = getcwd;
12 my $num_tests=0;
13 my $num_passes=0;
14 my $num_actual_passes=0;
15 my $text = "";
16
17 sub handle_start
18 {
19     my ($p, $elt, %attrs) = @_;
20
21     if($elt =~ /testcase/)
22     {
23         $num_tests++;
24         if($attrs{"result"} eq "PASS")
25         {
26             $num_passes++;
27         }
28     }
29     if($elt =~ /actual_result/)
30     {
31         $text = "";
32     }
33 }
34
35 sub handle_end
36 {
37   my ($p, $elt) = @_;
38   if($elt =~ /actual_result/)
39   {
40       if($text eq "PASS")
41       {
42           $num_actual_passes++;
43       }
44       $text = "";
45   }
46 }
47
48 sub handle_char
49 {
50   my ($p, $str) = @_;
51   $text .= $str;
52 }
53
54 my($parser) = new XML::Parser(Handlers => {Start => \&handle_start,
55                                            End   => \&handle_end,
56                                            Char  => \&handle_char});
57
58
59 # Write summary.xml:
60 open SUMMARY, ">summary.xml" || die "Can't open summary.xml for writing:$!\n";
61 print SUMMARY << "EOS";
62 <?xml version="1.0" encoding="UTF-8"?>
63 <?xml-stylesheet type="text/xsl" href="./style/summary.xsl"?>
64 <result_summary plan_name="Core">
65   <other xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string" />
66   <summary test_plan_name="Empty test_plan_name">
67     <start_at>2014-03-21_18_52_41</start_at>
68     <end_at>2014-03-21_18_57_54</end_at>
69   </summary>
70 EOS
71
72 print "\n\nSummary of all tests:\n";
73 my $output_files = `ls tct*core-tests.xml`;
74 my $file;
75 foreach $file (split /\s+/, $output_files )
76 {
77     $num_tests=0;
78     $num_passes=0;
79     $num_actual_passes=0;
80     $text = "";
81
82     $parser->parsefile($file);
83
84     my $pass_rate = sprintf("%5.2f", $num_passes * 100.0 / $num_tests);
85     my $num_fails = $num_tests - $num_passes;
86     my $fail_rate = sprintf("%5.2f", $num_fails * 100.0 / $num_tests);
87
88     my $suite_name = $file;
89     $suite_name =~ s/\.xml$//;
90
91     print "$suite_name: $num_passes tests passed out of $num_tests ( $pass_rate% )\n";
92
93 print SUMMARY << "EOS2";
94   <suite name="$suite_name">
95     <total_case>$num_tests</total_case>
96     <pass_case>$num_passes</pass_case>
97     <pass_rate>$pass_rate</pass_rate>
98     <fail_case>$num_fails</fail_case>
99     <fail_rate>$fail_rate</fail_rate>
100     <block_case>0</block_case>
101     <block_rate>0.00</block_rate>
102     <na_case>0</na_case>
103     <na_rate>0.00</na_rate>
104   </suite>
105 EOS2
106 }
107
108 print SUMMARY "</result_summary>\n";
109 close SUMMARY;
110
111 print "Summary of results written to summary.xml\n";