summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjoern Michaelsen <bjoern.michaelsen@canonical.com>2013-11-21 20:46:18 +0100
committerBjoern Michaelsen <bjoern.michaelsen@canonical.com>2013-11-24 23:41:26 +0100
commitee109b43f2e08b6d507098b2d670cc38330d9944 (patch)
treef06d42bfa8afdfbebdfa3ab1fc62b296da0fe6fd
parent24426c98a8c5ac410872df5a2b8e509f080365f8 (diff)
this script talks about dmake. it must be out of its mind!
Change-Id: Ic1863a2126c26cf703afc5fe250dea2bbddfef7d
-rw-r--r--sal/qa/buildall.pl488
1 files changed, 0 insertions, 488 deletions
diff --git a/sal/qa/buildall.pl b/sal/qa/buildall.pl
deleted file mode 100644
index 20f4dfa4aa04..000000000000
--- a/sal/qa/buildall.pl
+++ /dev/null
@@ -1,488 +0,0 @@
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# 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 .
-#
-
-# #!/usr/bin/perl -w
-
-use strict;
-use POSIX;
-use Cwd;
-use File::Path;
-use English;
-use Cwd 'chdir';
-
-my $cwd = getcwd();
-
-# Prototypes
-sub initEnvironment();
-sub main($);
-sub checkForKillobj();
-sub checkARGVFor($);
-
-my $g_sTempDir = "";
-my $FS = "";
-
-my $nGlobalFailures = 0;
-
-my %libraryRunThrough;
-my $bBuildAll = 0;
-
-# LLA: this does not exist, ... use a little bit simpler method.
-# use File::Temp qw/ :POSIX /;
-
-my $params;
-my $param;
-
-if ($#ARGV < 0)
-{
- $params = "test "; # debug=t TESTOPTADD=\"-boom\" TESTOPTADD=\"-noerroronexit\"
-
- # my $nNumber = 55;
- # my $sLocalParams = $params;
- # $sLocalParams =~ s/test\s/test$nNumber /;
- # print "Testparams: $sLocalParams\n";
- # exit 1;
- print "Default ";
-}
-else
-{
- # special hack!
- if (checkForKillobj() == 1)
- {
- $params = "killobj";
- }
- elsif (checkARGVFor("buildall") == 1)
- {
- $bBuildAll = 1;
- $params = "test";
- }
- else
- {
- # always run test, but envelope the other in 'TESTOPT="..."'
- $params = "test TESTOPT=\"";
-
- foreach $param (@ARGV)
- {
- $params = $params . " " . $param;
- }
- $params = $params . "\"";
- }
- print "User defined ";
-}
-
-print "parameters for dmake: $params\n";
-
-initEnvironment();
-main($params);
-
-# ------------------------------------------------------------------------------
-sub checkARGVFor($)
-{
- my $sCheckValue = shift;
- my $sLocalParam;
- my $nBackValue = 0;
- foreach $sLocalParam (@ARGV)
- {
- if ($sLocalParam =~ /^${sCheckValue}$/)
- {
- $nBackValue = 1;
- last;
- }
- }
- return $nBackValue;
-}
-# ------------------------------------------------------------------------------
-sub checkForKillobj()
-{
- my $sLocalParam;
- my $nBackValue = 0;
- foreach $sLocalParam (@ARGV)
- {
- if ($sLocalParam =~ /^killobj$/)
- {
- $nBackValue = 1;
- last;
- }
- }
- return $nBackValue;
-}
-
-# ------------------------------------------------------------------------------
-sub initEnvironment()
-{
- my $os = $ENV{OS};
- # no error output in forms of message boxes
- $ENV{'DISABLE_SAL_DBGBOX'}="t";
-
- SWITCH: {
- if ( $os eq "WNT" ) {
- $FS = "\\";
- $g_sTempDir = $ENV{TMP} ? "$ENV{TMP}${FS}" : "c:${FS}tmp${FS}";
- last SWITCH;
- }
- else {
- $FS = "/";
- $g_sTempDir = $ENV{TMP} ? "$ENV{TMP}${FS}" : "${FS}tmp${FS}";
- last SWITCH;
- }
- print STDERR "buildall.pl: unknown platform\n";
- exit(1);
- }
-}
-# ------------------------------------------------------------------------------
-
-sub trim($)
-{
- my $oldstr = shift;
- $oldstr =~ s/^\s*(.*?)\s*$/$1/;
- return $oldstr;
-}
-
-# ------------------------------------------------------------------------------
-sub getLibName($)
-{
- my $sFile = shift;
- if ($OSNAME eq "linux" || $OSNAME eq "solaris")
- {
- return "lib" . $sFile . ".so";
- }
- if ($OSNAME eq "MSWin32")
- {
- return $sFile . ".dll";
- }
- return $sFile;
-}
-# ------------------------------------------------------------------------------
-sub giveOutAll($)
-{
- my $sFailureFile = shift;
- local *IN;
- if (! open(IN, $sFailureFile))
- {
- print "ERROR: Can't open output file $sFailureFile\n";
- return;
- }
- my $line;
- while ($line = <IN>)
- {
- chomp($line);
- print "$line\n";
- }
- close(IN);
-}
-# ------------------------------------------------------------------------------
-sub giveOutFailures($$)
-{
- my $sTest = shift;
- my $sFailureFile = shift;
-
- my $bBegin = 0;
- my $nFailures = 0;
-
- my $line;
- local *IN;
- if (! open(IN, $sFailureFile))
- {
- print "ERROR: Can't open output file $sFailureFile\n";
- return;
- }
-
- my $bStartUnitTest = 0;
- while ($line = <IN>)
- {
- chomp($line);
- if ( $line =~ /^- start unit test/)
- {
- $bStartUnitTest = 1;
- }
- }
- close(IN);
-
- if ($bStartUnitTest == 0)
- {
- print "\nFailure: Unit test not started. Maybe compiler error.\n";
- giveOutAll($sFailureFile);
- $nFailures++;
- # exit(1);
- }
- else
- {
- open(IN, $sFailureFile);
- # check if testshl2 was started
- while ($line = <IN>)
- {
- chomp($line);
-
- # handling of the states
- if ( $line =~ /^\# -- BEGIN:/)
- {
- $bBegin = 1;
- }
- elsif ( $line =~ /^\# -- END:/)
- {
- $bBegin = 0;
- }
- else
- {
- if ($bBegin == 1)
- {
- print "$line\n";
- $nFailures++;
- }
- }
- }
- close(IN);
- }
-
- if ($nFailures > 0)
- {
- # extra return for a better output
- print "\nFailures occurred: $nFailures\n";
- print "The whole output can be found in $sFailureFile\n";
- print "\n";
-
- # Statistics
- $nGlobalFailures += $nFailures;
- }
-}
-# ------------------------------------------------------------------------------
-sub printOnLibrary($)
-{
- my $sTarget = shift;
- print " on library: " . getLibName($sTarget);
-}
-# ------------------------------------------------------------------------------
-sub runASingleTest($$)
-{
- my $sTarget = shift;
- my $params = shift;
- my $dmake = "dmake $params";
-
- my $sLogPath = $g_sTempDir . "dmake_out_$$";
- mkdir($sLogPath);
- my $sLogFile = $sLogPath . "/" . $sTarget . ".out";
-
- # due to the fact, a library name in one project is distinct, we should remember all already run through libraries and
- # supress same libraries, if they occur one more.
-
- if (exists $libraryRunThrough{getLibName($sTarget)})
- {
- # already done
- return;
- }
- printOnLibrary($sTarget);
- print "\n";
-
-# redirect tcsh ">&" (stdout, stderr)
-# redirect 4nt ">" (stdout), "2>" (stderr)
-# print "OSNAME: $OSNAME\n";
-# LLA: redirect check canceled, seems to be not work as I want.
-# my $redirect = "";
-# if ($OSNAME eq "linux" || $OSNAME eq "solaris")
-# {
-# # print "UNIX, linux or solaris\n";
-# $redirect = '>>&!' . $sLogFile;
-# }
-# else
-# {
-# if ($OSNAME eq "MSWin32")
-# {
-# # test
-# $redirect = ">>$sLogFile 2>>$sLogFile";
-# }
-# }
-# print "$dmake $redirect\n";
-
-# LLA: so system does also not work as I imagine
-# system("$dmake $redirect");
-
-# LLA: next check, use open with pipe
-
- local *LOGFILE;
- if (! open( LOGFILE, '>' . "$sLogFile"))
- {
- print "ERROR: can't open logfile: $sLogFile\n";
- return;
- }
-
- my $line;
- local *DMAKEOUTPUT;
- if (! open( DMAKEOUTPUT, "$dmake 2>&1 |"))
- {
- print "ERROR: can't open dmake\n";
- return;
- }
- while ($line = <DMAKEOUTPUT>)
- {
- chomp($line);
- print LOGFILE "$line\n";
- }
- close(DMAKEOUTPUT);
- close(LOGFILE);
-
- giveOutFailures($sTarget, $sLogFile);
-
- $libraryRunThrough{getLibName($sTarget)} = "done";
-}
-
-# ------------------------------------------------------------------------------
-sub interpretLine($)
-{
- my $line = shift;
-
- my $path;
- my $file;
-
- if ($line =~ /^\#/ || $line =~ /^$/)
- {
- # remark or empty line
- }
- else
- {
- # special format, $file == $path
- ($path, $file) = split(/;/, $line);
- if (! $file)
- {
- $file = $path;
- }
- $file = trim($file);
- $path = trim($path);
- }
- return $path, $file;
-}
-# ------------------------------------------------------------------------------
-sub runTestsOnPath($$$)
-{
- my $path = shift;
- my $file = shift;
- my $params = shift;
-
- # empty values
- if (!$path || $path eq "")
- {
- # DBG: print "empty path '$path'\n";
- return;
- }
- if (!$file || $file eq "")
- {
- # DBG: print "empty file '$file'\n";
- return;
- }
-
-# print "File: '$file', Path: '$path'\n";
- print "Work in directory: $path\n";
- my $newpath = $cwd . $FS . $path;
-# print "chdir to $newpath\n";
-
- my $error = chdir($newpath);
- cwd();
-
- # run through the hole makefile.mk and check if SHL<D>TARGET = ... exist, for every target call "dmake test<D>"
-
- local *MAKEFILE_MK;
- if (! open(MAKEFILE_MK, "makefile.mk"))
- {
- print "ERROR: can't open makefile.mk in path: $newpath\n";
- print "please check your libs2test.txt file in qa directory.\n";
- }
- my $line;
- my $nNumber;
- my $sTarget;
- my $sLocalParams;
-
- while($line = <MAKEFILE_MK>)
- {
- chomp($line);
-
- if ($line =~ /SHL(\d)TARGET=(.*)/)
- {
- $nNumber = $1;
- $sTarget = trim($2);
-
- # DBG: print "test$number is lib: $target\n";
- $sLocalParams = $params . " "; # append a whitespace, so we can check if 'test' exist without additional digits
- $sLocalParams =~ s/test\s/test$nNumber/;
- # DBG: print "$sLocalParams\n";
- if ($bBuildAll == 1 ||
- $file eq $sTarget)
- {
- # print "runASingleTest on Target: $sTarget 'dmake $sLocalParams'\n";
- runASingleTest($sTarget, $sLocalParams);
- }
- else
- {
- # printOnLibrary($sTarget);
- # print " suppressed, not in libs2test.txt\n";
- }
- }
- }
- close(MAKEFILE_MK);
-}
-
-# ------------------------------------------------------------------------------
-
-sub main($)
-{
- my $params = shift;
-# my $sLogFile = shift; # "buildall_$$.out";
- local *LIBS2TEST;
- my $filename = "libs2test.txt";
- my $line;
-
- open(LIBS2TEST, $filename) || die "can't open $filename\n";
-
- while($line = <LIBS2TEST>)
- {
- chomp($line);
- # DOS Hack grrrr...
- while ($line =~ /
-$/)
- {
- $line = substr($line, 0, -1);
- }
-
- # print "$line\n";
- my $path;
- my $file;
- ($path, $file) = interpretLine($line);
- runTestsOnPath($path, $file, $params);
- }
- close(LIBS2TEST);
-
- print "\nComplete logging information will be found in dir: ".$g_sTempDir."dmake_out_$$/\n";
-
- if ($nGlobalFailures > 0)
- {
- print "\nFailures over all occurred: $nGlobalFailures\n";
- print "\nPASSED FAILED.\n";
- }
- else
- {
- print "\nPASSED OK.\n";
- }
-}
-
-# ------------------------------------------------------------------------------
-
-# TODO:
-# -verbose
-# -fan - \ | /
-
-# END!
-