blob: 555ecd68f186e814cd114dd60dd0aeb0124a5a95 [file] [log] [blame]
package cwstestresulthelper;
#**************************************************************
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
#**************************************************************
use English;
use warnings;
use strict;
use Cwd;
use Cwd 'chdir';
use stringhelper;
use loghelper;
use oshelper;
use filehelper;
use CallExternals;
BEGIN {
use Exporter ();
our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
$VERSION = 1.00;
# if using RCS/CVS, this may be preferred
$VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
@ISA = qw(Exporter);
@EXPORT = qw(&cwstestresult);
%EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
# your exported package globals go here,
# as well as any optionally exported functions
@EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
}
sub cwstestresult($$$$$$)
{
my $sStatus = shift;
my $sDBdistinct = shift;
my $sourceversion = shift;
my $destinationversion = shift;
my $sSOLARENV; # = getSolenvPath();
my $nSOLARENV_fake = 0;
my $sCOMMON_ENV_TOOLS;
my $nCOMMON_ENV_TOOLS_fake = 0;
my $MAJOR;
my $MINOR;
# we need an extra state in DB
# if this state is given here, we need to add information in cws back.
if ( ! $sSOLARENV)
{
my @MAJORMINOR=split('_', $sourceversion);
if ($#MAJORMINOR < 1)
{
print "Failure with sourceversion '$sourceversion' not splitable.\n";
return;
}
$MAJOR=$MAJORMINOR[0]; # DEV300, OOH310, ...
$MINOR=$MAJORMINOR[1]; # m45, ...
if (getEnvironment() eq "wntmsci")
{
$sSOLARENV="o:/$MAJOR/ooo.$MINOR/solenv";
if (! -e $sSOLARENV)
{
# fallback to old before ause103 (treeconfig)
$sSOLARENV="o:/$MAJOR/src.$MINOR/solenv";
}
}
elsif (getEnvironment() eq "unxlngi" ||
getEnvironment() eq "unxsoli")
{
$sSOLARENV="/so/ws/$MAJOR/ooo.$MINOR/solenv";
# automount
system("ls -al $sSOLARENV >/dev/null");
sleep(1);
if (! -e $sSOLARENV)
{
# fallback to old before ause103 (treeconfig)
$sSOLARENV="/so/ws/$MAJOR/src.$MINOR/solenv";
}
}
else
{
log_print("cwstestresult(): This environment is not supported.");
return;
}
}
if ( !defined($ENV{SOLARENV}) || length($ENV{SOLARENV}) == 0 )
{
$ENV{SOLARENV} = $sSOLARENV;
log_print(" SOLARENV is: $ENV{SOLARENV} faked\n");
$nSOLARENV_fake = 1;
}
if ( ! $sCOMMON_ENV_TOOLS)
{
if (isWindowsEnvironment())
{
$sCOMMON_ENV_TOOLS="r:/etools";
}
elsif (isUnixEnvironment() )
{
$sCOMMON_ENV_TOOLS="/so/env/etools";
# automount
system("ls -al $sCOMMON_ENV_TOOLS >/dev/null");
sleep(1);
}
else
{
log_print("cwstestresult(): This environment is not supported. (variable COMMON_ENV_TOOLS not set.)");
return;
}
}
if ( !defined($ENV{COMMON_ENV_TOOLS}) || length($ENV{COMMON_ENV_TOOLS}) == 0 )
{
$ENV{COMMON_ENV_TOOLS} = $sCOMMON_ENV_TOOLS;
log_print( "COMMON_ENV_TOOLS is: $ENV{COMMON_ENV_TOOLS} faked\n");
$nCOMMON_ENV_TOOLS_fake = 1;
}
# if ( !defined($ENV{WORK_STAMP}) )
# {
# $ENV{WORK_STAMP} = $MAJOR;
# log_print( " WORK_STAMP is: $ENV{WORK_STAMP} faked\n");
# }
# if ( !defined($ENV{UPDMINOR}) )
# {
# $ENV{UPDMINOR} = $MINOR;
# log_print( " UPDMINOR is: $ENV{UPDMINOR} faked\n");
# }
my $nWORK_STAMP_fake = 0;
my $nUPDMINOR_fake = 0;
if ( !defined($ENV{WORK_STAMP}) || length($ENV{WORK_STAMP}) == 0 )
{
$ENV{WORK_STAMP} = $MAJOR;
log_print(" WORK_STAMP is: $ENV{WORK_STAMP} faked\n");
$nWORK_STAMP_fake = 1;
}
if ( !defined($ENV{UPDMINOR}) || length($ENV{WORK_STAMP}) == 0 )
{
$ENV{UPDMINOR} = $MINOR;
log_print(" UPDMINOR is: $ENV{UPDMINOR} faked\n");
$nUPDMINOR_fake = 1;
}
# my $sStatus = "ok";
# if ($nFailure == 0)
# {
# $sStatus = $sInfo;
# }
# elsif ($nFailure == 1)
# {
# $sStatus = "failed";
# }
# elsif ($nFailure == 2)
# {
# $sStatus = "incomplete";
# }
# system("cwstestresult -c mycws -n Performance -p Windows ok");
my $sPerlProgram = appendPath($sSOLARENV, "bin/cwstestresult.pl");
# if ( -e "cwstestresult.pl" )
# {
# # use a local version instead
# $sPerlProgram = "cwstestresult.pl";
# }
# else
# {
# my $currentdir =cwd();
# log_print( "We are in $currentdir\n");
# }
my $sPerlParam;
# $sPerlParam = " -m $MAJOR"; # master CWS
$sPerlParam .= " -c $destinationversion"; # name of CWS
$sPerlParam .= " -n ConvWatch"; # ConvWatch need to be capitalised for cwstestresult
my $sCWSEnv;
if (isWindowsEnvironment())
{
$sCWSEnv = "Windows";
}
elsif (getEnvironment() eq "unxlngi")
{
$sCWSEnv = "Linux";
}
elsif (getEnvironment() eq "unxsoli")
{
$sCWSEnv = "SolarisX86";
}
else
{
log_print("cwstestresult(): This environment is not supported. (getEnvironment() returns wrong value?)");
return;
}
$sPerlParam .= " -p " . $sCWSEnv;
$sPerlParam .= " -r http://so-gfxcmp-lin.germany.sun.com/gfxcmp_ui/status_new.php?distinct=$sDBdistinct";
$sPerlParam .= " ";
$sPerlParam .= $sStatus;
# my $sSetcwsAndPerl = "setcws $destinationversion; " . getPerlExecutable();
my $err = callperl(getPerlExecutable(), $sPerlProgram, $sPerlParam);
if ($err != 0)
{
log_print( "Can't call cwstestresult.pl\n");
}
if ($nSOLARENV_fake == 1)
{
$ENV{SOLARENV} = "";
undef( $ENV{SOLARENV} );
$nSOLARENV_fake = 0;
# if ( defined($ENV{SOLARENV}) )
# {
# print "SOLARENV always defined.\n";
# }
}
if ($nCOMMON_ENV_TOOLS_fake == 1)
{
$ENV{COMMON_ENV_TOOLS} = "";
undef( $ENV{COMMON_ENV_TOOLS} );
$nCOMMON_ENV_TOOLS_fake = 0;
}
if ( $nWORK_STAMP_fake == 1 )
{
# undef($ENV{WORK_STAMP});
$ENV{WORK_STAMP} = "";
undef($ENV{WORK_STAMP});
$nWORK_STAMP_fake = 0;
}
if ( $nUPDMINOR_fake == 1 )
{
$ENV{UPDMINOR} = "";
undef($ENV{UPDMINOR});
$nUPDMINOR_fake = 0;
}
}
1;