common/tools/ats/update_brag_status.pl
author Simon Howkins <simonh@symbian.org>
Mon, 07 Jun 2010 15:39:44 +0100
changeset 1078 551e851f4b49
parent 1040 f1f85b34a96f
child 1090 46b3578a07ad
permissions -rw-r--r--
Enabled tool to create arbitrarily deep paths for output
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1040
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     1
#!/usr/bin/perl
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     2
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     3
# Copyright (c) 2009 Symbian Foundation Ltd
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     4
# This component and the accompanying materials are made available
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     5
# under the terms of the License "Eclipse Public License v1.0"
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     6
# which accompanies this distribution, and is available
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     8
#
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     9
# Initial Contributors:
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    10
# Symbian Foundation Ltd - initial contribution.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    11
#	Maciej Seroka, maciejs@symbian.org
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    12
#
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    13
# Description:
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    14
#   This is a tool for updating BRAG status with test results.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    15
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    16
use strict;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    17
use Getopt::Long;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    18
use XML::Simple;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    19
use Tie::File;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    20
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    21
my $brag_file;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    22
my $ats_report;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    23
my $test_report;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    24
my $help;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    25
my $line;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    26
my $auto_tests_total;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    27
my $auto_tests_passed;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    28
my $auto_tests_failed;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    29
my $auto_tests_notrun;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    30
my $man_tests_total;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    31
my $man_tests_passed;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    32
my $man_tests_failed;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    33
my $man_tests_notrun;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    34
my $temp_path;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    35
my $detailshref;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    36
my $xml_report;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    37
my $test_case;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    38
my $test_brag_xml;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    39
my $existing_results;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    40
my $n;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    41
my $m;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    42
my @lines;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    43
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    44
sub usage($);
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    45
sub help();
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    46
sub usage_error();
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    47
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    48
my %optmap = (  'brag-file' => \$brag_file,
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    49
			    'ats-report' => \$ats_report,
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    50
			    'test-report' => \$test_report,
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    51
				'help' => \$help);
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    52
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    53
GetOptions(\%optmap,
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    54
          'brag-file=s',
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    55
          'ats-report=s',
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    56
          'test-report=s',
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    57
		  'help!') 
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    58
          or usage_error();
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    59
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    60
if ($help) {
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    61
	help();
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    62
}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    63
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    64
# --brag-file is mandatory.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    65
usage_error(), unless (defined($brag_file));
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    66
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    67
# --ats-report is mandatory.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    68
usage_error(), unless (defined($ats_report));
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    69
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    70
open (FILE, "<$ats_report") or die ("Couldn't open $ats_report for reading: $!\n");
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    71
my $read_flag = -1;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    72
print "Reading $ats_report... ";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    73
while ($line = <FILE>) {
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    74
	chomp $line;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    75
	if ($read_flag >= 0) { $read_flag++ }
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    76
	if ($read_flag == 1) { # Get Total number of tests.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    77
		$auto_tests_total = $line;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    78
		# Remove td tags.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    79
		$auto_tests_total =~ s/^.*\">//;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    80
		$auto_tests_total =~ s/<.*//;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    81
	}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    82
	if ($read_flag == 4) { # Get number of Passed tests.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    83
		($auto_tests_passed) = split /\//,$line;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    84
		$auto_tests_passed =~ s/^.*\">//; # Remove opening td tag.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    85
	}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    86
	if ($read_flag == 5) { # Get number of Failed tests.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    87
		($auto_tests_failed) = split /\//,$line;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    88
		$auto_tests_failed =~ s/^.*\">//; # Remove opening td tag.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    89
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    90
	}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    91
	if ($read_flag == 7) { # Get number of Not run tests.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    92
		($auto_tests_notrun) = split /\//,$line;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    93
		$auto_tests_notrun =~ s/^.*\">//; # Remove opening td tag.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    94
	}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    95
	if ($line eq "<td class=\"tableData\">Nested tests<\/td>") { # Set flag for reading results.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    96
		$read_flag = 0;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    97
	}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    98
	if (($line eq "<\/tr>") && ($read_flag >= 0)) { # Exit loop.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    99
		last;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   100
	};
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   101
}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   102
close FILE;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   103
print "complete\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   104
print "Total number of tests: $auto_tests_total\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   105
print "Passed tests: $auto_tests_passed\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   106
print "Failed tests: $auto_tests_failed\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   107
print "Not run tests: $auto_tests_notrun\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   108
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   109
# Define detailshref attribute.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   110
$temp_path = $brag_file;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   111
$temp_path =~ s/\\/\//g; # Replace \ with /
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   112
$temp_path =~ s/\/summary\/.*//;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   113
$detailshref = $ats_report;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   114
$detailshref =~ s/\\/\//g; # Replace \ with /
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   115
$detailshref =~ s/($temp_path)/../;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   116
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   117
if (defined($test_report)) { # Get manual Smoketest results.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   118
	print "Parsing " . $test_report . "... ";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   119
	$xml_report = XMLin("$test_report", keeproot => 1, forcearray => [ 'test-set', 'test-case' ], keyattr => [] );
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   120
	print "complete \n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   121
	$man_tests_total = 0;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   122
	$man_tests_passed = 0;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   123
	$man_tests_failed = 0;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   124
	$man_tests_notrun = 0;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   125
	foreach $test_case (@{$xml_report->{'test-report'}->{'test-set'}->[0]->{'test-case'}}) {
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   126
		if (lc($test_case->{'result'}) eq "passed") { $man_tests_passed++ }
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   127
		if (lc($test_case->{'result'}) eq "failed") { $man_tests_failed++ }
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   128
		if (lc($test_case->{'result'}) eq "not run") { $man_tests_notrun++ }
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   129
		$man_tests_total++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   130
	}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   131
	print "Total number of tests: $man_tests_total\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   132
	print "Passed tests: $man_tests_passed\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   133
	print "Failed tests: $man_tests_failed\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   134
	print "Not run tests: $man_tests_notrun\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   135
}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   136
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   137
# Check for Smoketest results in BRAG file.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   138
open (FILE, "<$brag_file") or die ("Couldn't open $brag_file for reading: $!\n");
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   139
$existing_results = 0;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   140
$n = 0;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   141
while ($line = <FILE>)
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   142
{
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   143
	chomp $line;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   144
	if ($line =~ "<phase name=\"Test\">") {
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   145
		$existing_results = 1;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   146
		last;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   147
	}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   148
	$n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   149
}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   150
close FILE;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   151
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   152
tie @lines, 'Tie::File', $brag_file or die ("Couldn't tie file $brag_file: $!\n");
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   153
if ($existing_results) { # Delete existing Test Results from BRAG file.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   154
	$m = 0;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   155
	do {
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   156
		$m++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   157
	} while (@lines[$n+$m] !~ "<\/phase>");
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   158
	splice @lines, $n, $m+1;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   159
}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   160
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   161
# Insert (New) Test Results to BRAG file.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   162
$n = 0;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   163
foreach ( @lines )
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   164
{
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   165
	if (lc(@lines[$n]) =~ "<\/buildstatus>") {
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   166
		last;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   167
	}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   168
	$n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   169
}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   170
splice @lines, $n, 0, "<phase name=\"Test\">"; $n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   171
splice @lines, $n, 0, "<step detailshref=\"$detailshref\" name=\"Smoketest - automated tests\">"; $n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   172
splice @lines, $n, 0, "<nestedtests count=\"$auto_tests_total\" property=\"total\"/>"; $n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   173
splice @lines, $n, 0, "<nestedtests count=\"$auto_tests_passed\" property=\"passed\"/>"; $n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   174
splice @lines, $n, 0, "<nestedtests count=\"$auto_tests_failed\" property=\"failed\"/>"; $n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   175
splice @lines, $n, 0, "<nestedtests count=\"$auto_tests_notrun\" property=\"not run\"/>"; $n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   176
splice @lines, $n, 0, "<\/step>"; $n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   177
if (defined($test_report)) {
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   178
	splice @lines, $n, 0, "<step name=\"Smoketest - manual tests\">"; $n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   179
	splice @lines, $n, 0, "<nestedtests count=\"$man_tests_total\" property=\"total\"/>"; $n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   180
	splice @lines, $n, 0, "<nestedtests count=\"$man_tests_passed\" property=\"passed\"/>"; $n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   181
	splice @lines, $n, 0, "<nestedtests count=\"$man_tests_failed\" property=\"failed\"/>"; $n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   182
	splice @lines, $n, 0, "<nestedtests count=\"$man_tests_notrun\" property=\"not run\"/>"; $n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   183
	splice @lines, $n, 0, "<\/step>"; $n++;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   184
}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   185
splice @lines, $n, 0, "<\/phase>";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   186
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   187
untie @lines;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   188
print "$brag_file updated\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   189
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   190
# Create Test_BRAG.xml
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   191
$test_brag_xml = $temp_path . "\/summary\/" . "Test_BRAG.xml";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   192
if (-e $test_brag_xml) { # Delete the file if exists.
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   193
	unlink($test_brag_xml);
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   194
	print "$test_brag_xml deleted\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   195
}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   196
open (FILE, "> $test_brag_xml") or die ("Couldn't open $test_brag_xml for writing: $!\n");
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   197
print FILE "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   198
print FILE "<?xml-stylesheet type='text/xsl' href='brag.xsl'?>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   199
print FILE "<buildStatus>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   200
print FILE "<phase name=\"Test\">\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   201
print FILE "<step detailshref=\"$detailshref\" name=\"Smoketest - automated tests\">\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   202
print FILE "<nestedtests count=\"$auto_tests_total\" property=\"total\"/>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   203
print FILE "<nestedtests count=\"$auto_tests_passed\" property=\"passed\"/>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   204
print FILE "<nestedtests count=\"$auto_tests_failed\" property=\"failed\"/>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   205
print FILE "<nestedtests count=\"$auto_tests_notrun\" property=\"not run\"/>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   206
print FILE "<\/step>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   207
if (defined($test_report)) {
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   208
	print FILE "<step name=\"Smoketest - manual tests\">\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   209
	print FILE "<nestedtests count=\"$man_tests_total\" property=\"total\"/>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   210
	print FILE "<nestedtests count=\"$man_tests_passed\" property=\"passed\"/>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   211
	print FILE "<nestedtests count=\"$man_tests_failed\" property=\"failed\"/>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   212
	print FILE "<nestedtests count=\"$man_tests_notrun\" property=\"not run\"/>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   213
	print FILE "<\/step>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   214
}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   215
print FILE "<\/phase>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   216
print FILE "</buildStatus>\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   217
close FILE;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   218
print "$test_brag_xml saved\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   219
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   220
exit 0;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   221
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   222
sub usage($)
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   223
{
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   224
    my $error = shift;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   225
    my $fh = $error == 0 ? *STDOUT : *STDERR;
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   226
    print $fh "update_brag_status.pl\n" .
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   227
            "Specify the BRAG xml file and ATS report\n" .
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   228
            "synopsis:\n" .
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   229
            "  update_brag_status.pl --help\n" .
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   230
            "  update_brag_status.pl [--brag-file=XML_FILE] [--ats-report=HTML_REPORT] [--test-report=XML_REPORT] \n" .
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   231
            "options:\n" .
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   232
            "  --help                        Display this help and exit.\n" .
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   233
            "  --brag-file=XML_FILE          XML_FILE is the full path to the file containing BRAG summary.\n" .
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   234
            "  --ats-report=HTML_REPORT      HTML_REPORT is the full path to the ATS report.\n" .
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   235
            "  --test-report=XML_REPORT      XML_REPORT is the name of the test report for manually executed tests.\n" .
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   236
			"                                If not specified only automated tests results will be taken into account.\n";
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   237
    exit $error;            
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   238
}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   239
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   240
sub help()
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   241
{
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   242
    usage(0);
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   243
}
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   244
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   245
sub usage_error()
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   246
{
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   247
    usage(1);
f1f85b34a96f Added script for updating BRAG status with test results
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   248
}