268 lines
7.6 KiB
Perl
268 lines
7.6 KiB
Perl
package cwstestresulthelper;
|
|
|
|
#*************************************************************************
|
|
#
|
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
#
|
|
# Copyright 2000, 2010 Oracle and/or its affiliates.
|
|
#
|
|
# OpenOffice.org - a multi-platform office productivity suite
|
|
#
|
|
# This file is part of OpenOffice.org.
|
|
#
|
|
# OpenOffice.org is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Lesser General Public License version 3
|
|
# only, as published by the Free Software Foundation.
|
|
#
|
|
# OpenOffice.org is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU Lesser General Public License version 3 for more details
|
|
# (a copy is included in the LICENSE file that accompanied this code).
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public License
|
|
# version 3 along with OpenOffice.org. If not, see
|
|
# <http://www.openoffice.org/license.html>
|
|
# for a copy of the LGPLv3 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;
|