diff -r 85578ba0aa08 -r be14ecca790f bldsystemtools/commonbldutils/GenResult/BragStatus.pm --- a/bldsystemtools/commonbldutils/GenResult/BragStatus.pm Fri Apr 16 16:10:01 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,320 +0,0 @@ -# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -# All rights reserved. -# This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" -# which accompanies this distribution, and is available -# at the URL "http://www.eclipse.org/legal/epl-v10.html". -# -# Initial Contributors: -# Nokia Corporation - initial contribution. -# -# Contributors: -# -# Description: -# Script summarise and hotlink logfiles by reading -# HTMLscanlog generated files -# This initial version is phase 1 of 3. -# 1. HTML scanlog input --> HTML report output -# 2. HTML scanlog input --> XML report output + XSLT to HTML -# 3. XML scanlog input --> XML report output + XSLT to HTML -# -# - -#!/usr/bin/perl -w -package BragStatus; -use FindBin; -use FileRead; -require GenResult; -use strict; - -use constant SINGLE_SMOKETEST_FAILURE => 1; -use constant PLATFORM_SMOKETEST_FAILURE => 2; -use constant PLATFORM_SMOKETEST_SUCCESS => 0; - -my $gBragStatus = "Green"; -my $iHTMLFileName = "testlog.html"; -my $iTraceFileName = "trace.txt"; -my $iDevkitFileName = "Devkit\.log"; - -my $iCfgFileLocation = $FindBin::Bin; -#Read in the products from a cfg file -my $text = FileRead::file_read("$iCfgFileLocation\\Product_AutoSmokeTest.cfg"); -my %iProducts = $text =~ /^\s*(\w+\.?\w+)\s*=\s*(.+)$/mg ; -#Read in the smoketest list from a cfg file -my $Smoketext = FileRead::file_read ("$iCfgFileLocation\\AutoSmoketests.cfg"); -my %iTests = $Smoketext =~ /^\s*(\w+\s*\w*\s*)=\s*(.+)$/mg ; - -my $iNumberOfTests = scalar(my @iTempArray = values %iTests); -my $iLogsPublishLocation = ""; - -# Entry point into the BragStatus module -sub main -{ - my ($iDir, $iSnapshot, $iProduct, $iLinkPath) = @_; - # set file names, so that they can be accessed globally - ${GenResult::iGTFileName} = "GT.summary.html"; - ${GenResult::iTVFileName} = "TV.summary.html"; - ${GenResult::iBUILDFileName} = "$iSnapshot"."_Symbian_OS_v"."$iProduct".".summary.html"; - ${GenResult::iCBRFileName} = "$iSnapshot"."_Symbian_OS_v"."$iProduct"."_cbr.summary.html"; - ${GenResult::iROMFileName} = "techviewroms"."$iSnapshot"."_Symbian_OS_v"."$iProduct". ".log"; - - my $iLinkPathLocation = ""; - $iDir =~ s/[^\\]$/$&\\/; #add trailing backslash, if missing - $iLogsPublishLocation = $iDir; - if (-e $iLinkPath) { - $iLinkPathLocation = $iLinkPath; - } else { - # if no link path is specified, then use current directory location - #print "WARNING:" .$iLinkPath. " does not exist, linking with relative paths\n"; - $iLinkPathLocation = $iLogsPublishLocation; - } - - if (-e $iLogsPublishLocation) - { - #Set the Files for the Smoketest package - ${GenResult::iGTLogFileLocation} = $iLogsPublishLocation.${GenResult::iGTFileName}; - ${GenResult::iTVLogFileLocation} = $iLogsPublishLocation.${GenResult::iTVFileName}; - ${GenResult::iBUILDLogFileLocation} = $iLogsPublishLocation.${GenResult::iBUILDFileName}; - ${GenResult::iCBRLogFileLocation} = $iLogsPublishLocation.${GenResult::iCBRFileName}; - ${GenResult::iROMLogFileLocation} = $iLogsPublishLocation.${GenResult::iROMFileName}; - - #################################### - #BUILD RESULTS - #################################### - CheckBuildResults(); - } - else - { - #Something is seriously wrong if there is no logs - setBragStatus("Black"); - } - - ############################### - #SMOKETEST - ############################### - CheckSmokeTest($iProduct, $iSnapshot."_Symbian_OS_v".$iProduct); - ############################### - CheckDevkit($iProduct); - #CBR EXIST - ############################### - CheckCBRs($iProduct, $iSnapshot); - return $gBragStatus; -} - -######################################################### -# Name:CheckSmokeTest -# Input: Product -# Outout: None -# Description: Checks the smoketest tables for any errors -######################################################### -sub CheckSmokeTest -{ - my $iProduct = shift; - my $iFileName = shift; - my $iResult = 0; - my @iProductList = ($iProducts{$iProduct} =~ m/\S+/ig); - my $iplatform_counter = 0; - - - # Parse results from dabs/autorom smoketest solution - # Passing 1 as the second argument ensures that the function acts for brag status only. - $iResult = &GenAutoSmokeTestResult::printSTResultRow(1,($iLogsPublishLocation."AutoSmokeTest\\"),@iProductList); - - if($iResult == 1) - { - #Some tests failed for $iPlatform - setBragStatus("Amber"); - } - if($iResult == 2) - { - #Platform Failure - setBragStatus("Red"); - } - - if($iResult == -1) - { - # BRAG status set to TBA as smoke tests do not appear to have been run - setBragStatus("TBA"); - } -} - -########################################### -#Name: CheckBuildResults -#inputs :None -#Outputs:None -#Description:Checks the same files as the Build Results table. -########################################### -sub CheckBuildResults -{ - my @ListofChecks = qw(GT TV BUILD CBR ROM CDB); - my $iCount = "0"; - while(@ListofChecks) - { - my $iFile = shift @ListofChecks; - # zero errors, means 'None' is displayed - if (!&GenResult::getHandleErrors($iFile)) - { - setBragStatus("TBA"); - #Should jump up to While loop again - next; - } - - my $iResultRow; - my @iResult = &GenResult::getResults($iFile); - foreach (&GenResult::getResults($iFile)) { - undef $iResultRow; - if (($_->[1] != "0") || ($_->[3] != "0")) - { - #A Build Results Error - setBragStatus("Amber"); - } - if ($_->[5] != "0") - { - $GenResult::iBraggflag=1; - } - - }#foreach - $iCount++; - }#end while -} -############################################## -# Name: CheckCBRs -# Inputs : product and snapshot number -# Outputs: None -# Description: Checks that the CBRs are created and sets the brag -# status to Red if they havent been -############################################### -sub CheckCBRs -{ - my $iProduct = shift; - my $iSnapshot = shift; - - my $iCBR_GT_only_Location = "\\\\builds01\\devbuilds\\ComponentisedReleases\\DailyBuildArchive\\Symbian_OS_v$iProduct\\"; - my $iCBR_GT_techview_Location = "\\\\builds01\\devbuilds\\ComponentisedReleases\\DailyBuildArchive\\Symbian_OS_v$iProduct\\"; - #Check to see if its a test build - if(&GenResult::isTestBuild() eq "1") - { - $iCBR_GT_only_Location = "\\\\builds01\\devbuilds\\Test_Builds\\ComponentisedReleases\\TestArchive\\Symbian_OS_v$iProduct\\"; - $iCBR_GT_techview_Location = "\\\\builds01\\devbuilds\\Test_Builds\\ComponentisedReleases\\TestArchive\\Symbian_OS_v$iProduct\\"; - } - - if( -e $iCBR_GT_only_Location) - { - #Check the GT_ONLY - if( -e $iCBR_GT_only_Location."\\GT_only_baseline\\$iSnapshot\_Symbian_OS_v$iProduct\\reldata") - { - setBragStatus("Green"); - } - else - { - setBragStatus("Red"); - } - #Check the GT_techview_baseline - if( -e $iCBR_GT_techview_Location."\\GT_techview_baseline\\$iSnapshot\_Symbian_OS_v$iProduct\\reldata") - { - setBragStatus("Green"); - } - else - { - setBragStatus("Red"); - } - } - else #No CBRs built so BragStatus is Red - { - setBragStatus("Red"); - } -} - -######################################################### -# Name:CheckDevkit -# Input: Product -# Outout: None -# Description: Checks the Devkit log file for any errors -######################################################### -sub CheckDevkit -{ - my $iProduct = shift; - my $iResult = 0; - my @iProductList = ($iProducts{$iProduct} =~ m/\S+/ig); - my $iplatform_counter = 0; - foreach my $iPlatform (@iProductList) - { - $iResult = getDEVKITRow($iPlatform); - if($iResult == 1) - { - #Error in $iPlatform - setBragStatus("Amber"); - } - - } -} - -sub getDEVKITRow -{ -############################################### -# Name: getDEVKITRow -# Input: Platform -# Output: 0 - No problems -# 1 - error in log file -# -############################################## - - my $iPlatform = $_[0]; - my $iDKdir = "\\SmokeTest\\"; - - open (DevkitLOGFILE, $iLogsPublishLocation.$iDKdir.$iDevkitFileName); - my @iDevkitLog = ; - my $iErrorCount = 0; - my $iLineOK = 0; - - foreach (@iDevkitLog) { - if (m/ERROR:/) - { - $iErrorCount++; - } - else - { - $iLineOK++; - } - } - if($iErrorCount > 0) { return 1;}else{return 0;} - -} - -############################################### -# Name : setBragStatus -# Inputs: Suggested Brag Status "Green","Amber","Red","Black" -# Outputs: None -# Description: This function sets the brag status -# Brag status can only deteriorate, not improve -############################################### -sub setBragStatus -{ - my $iBstatus = shift; - if($gBragStatus eq "Green") - { - $gBragStatus = $iBstatus; - return 0; - } - if(($gBragStatus eq "Amber") && (($iBstatus eq "Black") || ($iBstatus eq "Red"))) - { - $gBragStatus = $iBstatus; - return 0; - } - - if(($gBragStatus eq "Red") && ($iBstatus eq "Black")) - { - $gBragStatus = $iBstatus; - return 0; - } - - if($iBstatus eq "TBA") # Set BRAG to "TBA" if the SmokeTests do not appear to have run. - { - $gBragStatus = $iBstatus; - return 0; - } - -#For Everything Else leave gBragStatus as is - return 0; -} -1;