1cdf0e10cSrcweireval 'exec perl -wS $0 ${1+"$@"}' 2cdf0e10cSrcweir if 0; 3*7e90fac2SAndrew Rist#************************************************************** 4*7e90fac2SAndrew Rist# 5*7e90fac2SAndrew Rist# Licensed to the Apache Software Foundation (ASF) under one 6*7e90fac2SAndrew Rist# or more contributor license agreements. See the NOTICE file 7*7e90fac2SAndrew Rist# distributed with this work for additional information 8*7e90fac2SAndrew Rist# regarding copyright ownership. The ASF licenses this file 9*7e90fac2SAndrew Rist# to you under the Apache License, Version 2.0 (the 10*7e90fac2SAndrew Rist# "License"); you may not use this file except in compliance 11*7e90fac2SAndrew Rist# with the License. You may obtain a copy of the License at 12*7e90fac2SAndrew Rist# 13*7e90fac2SAndrew Rist# http://www.apache.org/licenses/LICENSE-2.0 14*7e90fac2SAndrew Rist# 15*7e90fac2SAndrew Rist# Unless required by applicable law or agreed to in writing, 16*7e90fac2SAndrew Rist# software distributed under the License is distributed on an 17*7e90fac2SAndrew Rist# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18*7e90fac2SAndrew Rist# KIND, either express or implied. See the License for the 19*7e90fac2SAndrew Rist# specific language governing permissions and limitations 20*7e90fac2SAndrew Rist# under the License. 21*7e90fac2SAndrew Rist# 22*7e90fac2SAndrew Rist#************************************************************** 23cdf0e10cSrcweir 24cdf0e10cSrcweir# #!/usr/bin/perl -w 25cdf0e10cSrcweir 26cdf0e10cSrcweiruse strict; 27cdf0e10cSrcweiruse POSIX; 28cdf0e10cSrcweiruse Cwd; 29cdf0e10cSrcweiruse File::Path; 30cdf0e10cSrcweiruse English; 31cdf0e10cSrcweiruse Cwd 'chdir'; 32cdf0e10cSrcweir 33cdf0e10cSrcweirmy $cwd = getcwd(); 34cdf0e10cSrcweir 35cdf0e10cSrcweir# Prototypes 36cdf0e10cSrcweirsub initEnvironment(); 37cdf0e10cSrcweirsub main($); 38cdf0e10cSrcweirsub checkForKillobj(); 39cdf0e10cSrcweirsub checkARGVFor($); 40cdf0e10cSrcweir 41cdf0e10cSrcweirmy $g_sTempDir = ""; 42cdf0e10cSrcweirmy $FS = ""; 43cdf0e10cSrcweir 44cdf0e10cSrcweirmy $nGlobalFailures = 0; 45cdf0e10cSrcweir 46cdf0e10cSrcweirmy %libraryRunThrough; 47cdf0e10cSrcweirmy $bBuildAll = 0; 48cdf0e10cSrcweir 49cdf0e10cSrcweir# LLA: this does not exist, ... use a little bit simpler method. 50cdf0e10cSrcweir# use File::Temp qw/ :POSIX /; 51cdf0e10cSrcweir 52cdf0e10cSrcweirmy $params; 53cdf0e10cSrcweirmy $param; 54cdf0e10cSrcweir 55cdf0e10cSrcweirif ($#ARGV < 0) 56cdf0e10cSrcweir{ 57cdf0e10cSrcweir $params = "test "; # debug=t TESTOPTADD=\"-boom\" TESTOPTADD=\"-noerroronexit\" 58cdf0e10cSrcweir 59cdf0e10cSrcweir # my $nNumber = 55; 60cdf0e10cSrcweir # my $sLocalParams = $params; 61cdf0e10cSrcweir # $sLocalParams =~ s/test\s/test$nNumber /; 62cdf0e10cSrcweir # print "Testparams: $sLocalParams\n"; 63cdf0e10cSrcweir # exit 1; 64cdf0e10cSrcweir print "Default "; 65cdf0e10cSrcweir} 66cdf0e10cSrcweirelse 67cdf0e10cSrcweir{ 68cdf0e10cSrcweir # special hack! 69cdf0e10cSrcweir if (checkForKillobj() == 1) 70cdf0e10cSrcweir { 71cdf0e10cSrcweir $params = "killobj"; 72cdf0e10cSrcweir } 73cdf0e10cSrcweir elsif (checkARGVFor("buildall") == 1) 74cdf0e10cSrcweir { 75cdf0e10cSrcweir $bBuildAll = 1; 76cdf0e10cSrcweir $params = "test"; 77cdf0e10cSrcweir } 78cdf0e10cSrcweir else 79cdf0e10cSrcweir { 80cdf0e10cSrcweir # always run test, but envelope the other in 'TESTOPT="..."' 81cdf0e10cSrcweir $params = "test TESTOPT=\""; 82cdf0e10cSrcweir 83cdf0e10cSrcweir foreach $param (@ARGV) 84cdf0e10cSrcweir { 85cdf0e10cSrcweir $params = $params . " " . $param; 86cdf0e10cSrcweir } 87cdf0e10cSrcweir $params = $params . "\""; 88cdf0e10cSrcweir } 89cdf0e10cSrcweir print "User defined "; 90cdf0e10cSrcweir} 91cdf0e10cSrcweir 92cdf0e10cSrcweirprint "parameters for dmake: $params\n"; 93cdf0e10cSrcweir 94cdf0e10cSrcweirinitEnvironment(); 95cdf0e10cSrcweirmain($params); 96cdf0e10cSrcweir 97cdf0e10cSrcweir# ------------------------------------------------------------------------------ 98cdf0e10cSrcweirsub checkARGVFor($) 99cdf0e10cSrcweir{ 100cdf0e10cSrcweir my $sCheckValue = shift; 101cdf0e10cSrcweir my $sLocalParam; 102cdf0e10cSrcweir my $nBackValue = 0; 103cdf0e10cSrcweir foreach $sLocalParam (@ARGV) 104cdf0e10cSrcweir { 105cdf0e10cSrcweir if ($sLocalParam =~ /^${sCheckValue}$/) 106cdf0e10cSrcweir { 107cdf0e10cSrcweir $nBackValue = 1; 108cdf0e10cSrcweir last; 109cdf0e10cSrcweir } 110cdf0e10cSrcweir } 111cdf0e10cSrcweir return $nBackValue; 112cdf0e10cSrcweir} 113cdf0e10cSrcweir# ------------------------------------------------------------------------------ 114cdf0e10cSrcweirsub checkForKillobj() 115cdf0e10cSrcweir{ 116cdf0e10cSrcweir my $sLocalParam; 117cdf0e10cSrcweir my $nBackValue = 0; 118cdf0e10cSrcweir foreach $sLocalParam (@ARGV) 119cdf0e10cSrcweir { 120cdf0e10cSrcweir if ($sLocalParam =~ /^killobj$/) 121cdf0e10cSrcweir { 122cdf0e10cSrcweir $nBackValue = 1; 123cdf0e10cSrcweir last; 124cdf0e10cSrcweir } 125cdf0e10cSrcweir } 126cdf0e10cSrcweir return $nBackValue; 127cdf0e10cSrcweir} 128cdf0e10cSrcweir 129cdf0e10cSrcweir# ------------------------------------------------------------------------------ 130cdf0e10cSrcweirsub initEnvironment() 131cdf0e10cSrcweir{ 132cdf0e10cSrcweir my $gui = $ENV{GUI}; 133cdf0e10cSrcweir # no error output in forms of message boxes 134cdf0e10cSrcweir $ENV{'DISABLE_SAL_DBGBOX'}="t"; 135cdf0e10cSrcweir 136cdf0e10cSrcweir SWITCH: { 137cdf0e10cSrcweir if ( $gui eq "WNT" ) { 138cdf0e10cSrcweir $FS = "\\"; 139cdf0e10cSrcweir $g_sTempDir = $ENV{TMP} ? "$ENV{TMP}${FS}" : "c:${FS}tmp${FS}"; 140cdf0e10cSrcweir last SWITCH; 141cdf0e10cSrcweir } 142cdf0e10cSrcweir if ( $gui eq "WIN" ) { 143cdf0e10cSrcweir $FS = "\\"; 144cdf0e10cSrcweir $g_sTempDir = $ENV{TMP} ? "$ENV{TMP}${FS}" : "c:${FS}tmp${FS}"; 145cdf0e10cSrcweir last SWITCH; 146cdf0e10cSrcweir } 147cdf0e10cSrcweir if ( $gui eq "OS2" ) { 148cdf0e10cSrcweir $FS = "\\"; 149cdf0e10cSrcweir $g_sTempDir = $ENV{TMP} ? "$ENV{TMP}${FS}" : "c:${FS}tmp${FS}"; 150cdf0e10cSrcweir last SWITCH; 151cdf0e10cSrcweir } 152cdf0e10cSrcweir if ( $gui eq "UNX" ) { 153cdf0e10cSrcweir $FS = "/"; 154cdf0e10cSrcweir $g_sTempDir = $ENV{TMP} ? "$ENV{TMP}${FS}" : "${FS}tmp${FS}"; 155cdf0e10cSrcweir last SWITCH; 156cdf0e10cSrcweir } 157cdf0e10cSrcweir print STDERR "buildall.pl: unkown platform\n"; 158cdf0e10cSrcweir exit(1); 159cdf0e10cSrcweir } 160cdf0e10cSrcweir} 161cdf0e10cSrcweir# ------------------------------------------------------------------------------ 162cdf0e10cSrcweir 163cdf0e10cSrcweirsub trim($) 164cdf0e10cSrcweir{ 165cdf0e10cSrcweir my $oldstr = shift; 166cdf0e10cSrcweir $oldstr =~ s/^\s*(.*?)\s*$/$1/; 167cdf0e10cSrcweir return $oldstr; 168cdf0e10cSrcweir} 169cdf0e10cSrcweir 170cdf0e10cSrcweir# ------------------------------------------------------------------------------ 171cdf0e10cSrcweirsub getLibName($) 172cdf0e10cSrcweir{ 173cdf0e10cSrcweir my $sFile = shift; 174cdf0e10cSrcweir if ($OSNAME eq "linux" || $OSNAME eq "solaris") 175cdf0e10cSrcweir { 176cdf0e10cSrcweir return "lib" . $sFile . ".so"; 177cdf0e10cSrcweir } 178cdf0e10cSrcweir if ($OSNAME eq "MSWin32" || $OSNAME eq "OS2") 179cdf0e10cSrcweir { 180cdf0e10cSrcweir return $sFile . ".dll"; 181cdf0e10cSrcweir } 182cdf0e10cSrcweir return $sFile; 183cdf0e10cSrcweir} 184cdf0e10cSrcweir# ------------------------------------------------------------------------------ 185cdf0e10cSrcweirsub giveOutAll($) 186cdf0e10cSrcweir{ 187cdf0e10cSrcweir my $sFailureFile = shift; 188cdf0e10cSrcweir local *IN; 189cdf0e10cSrcweir if (! open(IN, $sFailureFile)) 190cdf0e10cSrcweir { 191cdf0e10cSrcweir print "ERROR: Can't open output file $sFailureFile\n"; 192cdf0e10cSrcweir return; 193cdf0e10cSrcweir } 194cdf0e10cSrcweir my $line; 195cdf0e10cSrcweir while ($line = <IN>) 196cdf0e10cSrcweir { 197cdf0e10cSrcweir chomp($line); 198cdf0e10cSrcweir print "$line\n"; 199cdf0e10cSrcweir } 200cdf0e10cSrcweir close(IN); 201cdf0e10cSrcweir} 202cdf0e10cSrcweir# ------------------------------------------------------------------------------ 203cdf0e10cSrcweirsub giveOutFailures($$) 204cdf0e10cSrcweir{ 205cdf0e10cSrcweir my $sTest = shift; 206cdf0e10cSrcweir my $sFailureFile = shift; 207cdf0e10cSrcweir 208cdf0e10cSrcweir my $bBegin = 0; 209cdf0e10cSrcweir my $nFailures = 0; 210cdf0e10cSrcweir 211cdf0e10cSrcweir my $line; 212cdf0e10cSrcweir local *IN; 213cdf0e10cSrcweir if (! open(IN, $sFailureFile)) 214cdf0e10cSrcweir { 215cdf0e10cSrcweir print "ERROR: Can't open output file $sFailureFile\n"; 216cdf0e10cSrcweir return; 217cdf0e10cSrcweir } 218cdf0e10cSrcweir 219cdf0e10cSrcweir my $bStartUnitTest = 0; 220cdf0e10cSrcweir while ($line = <IN>) 221cdf0e10cSrcweir { 222cdf0e10cSrcweir chomp($line); 223cdf0e10cSrcweir if ( $line =~ /^- start unit test/) 224cdf0e10cSrcweir { 225cdf0e10cSrcweir $bStartUnitTest = 1; 226cdf0e10cSrcweir } 227cdf0e10cSrcweir } 228cdf0e10cSrcweir close(IN); 229cdf0e10cSrcweir 230cdf0e10cSrcweir if ($bStartUnitTest == 0) 231cdf0e10cSrcweir { 232cdf0e10cSrcweir print "\nFailure: Unit test not started. Maybe compiler error.\n"; 233cdf0e10cSrcweir giveOutAll($sFailureFile); 234cdf0e10cSrcweir $nFailures++; 235cdf0e10cSrcweir # exit(1); 236cdf0e10cSrcweir } 237cdf0e10cSrcweir else 238cdf0e10cSrcweir { 239cdf0e10cSrcweir open(IN, $sFailureFile); 240cdf0e10cSrcweir # check if testshl2 was started 241cdf0e10cSrcweir while ($line = <IN>) 242cdf0e10cSrcweir { 243cdf0e10cSrcweir chomp($line); 244cdf0e10cSrcweir 245cdf0e10cSrcweir # handling of the states 246cdf0e10cSrcweir if ( $line =~ /^\# -- BEGIN:/) 247cdf0e10cSrcweir { 248cdf0e10cSrcweir $bBegin = 1; 249cdf0e10cSrcweir } 250cdf0e10cSrcweir elsif ( $line =~ /^\# -- END:/) 251cdf0e10cSrcweir { 252cdf0e10cSrcweir $bBegin = 0; 253cdf0e10cSrcweir } 254cdf0e10cSrcweir else 255cdf0e10cSrcweir { 256cdf0e10cSrcweir if ($bBegin == 1) 257cdf0e10cSrcweir { 258cdf0e10cSrcweir print "$line\n"; 259cdf0e10cSrcweir $nFailures++; 260cdf0e10cSrcweir } 261cdf0e10cSrcweir } 262cdf0e10cSrcweir } 263cdf0e10cSrcweir close(IN); 264cdf0e10cSrcweir } 265cdf0e10cSrcweir 266cdf0e10cSrcweir if ($nFailures > 0) 267cdf0e10cSrcweir { 268cdf0e10cSrcweir # extra return for a better output 269cdf0e10cSrcweir print "\nFailures occured: $nFailures\n"; 270cdf0e10cSrcweir print "The whole output can be found in $sFailureFile\n"; 271cdf0e10cSrcweir print "\n"; 272cdf0e10cSrcweir 273cdf0e10cSrcweir # Statistics 274cdf0e10cSrcweir $nGlobalFailures += $nFailures; 275cdf0e10cSrcweir } 276cdf0e10cSrcweir} 277cdf0e10cSrcweir# ------------------------------------------------------------------------------ 278cdf0e10cSrcweirsub printOnLibrary($) 279cdf0e10cSrcweir{ 280cdf0e10cSrcweir my $sTarget = shift; 281cdf0e10cSrcweir print " on library: " . getLibName($sTarget); 282cdf0e10cSrcweir} 283cdf0e10cSrcweir# ------------------------------------------------------------------------------ 284cdf0e10cSrcweirsub runASingleTest($$) 285cdf0e10cSrcweir{ 286cdf0e10cSrcweir my $sTarget = shift; 287cdf0e10cSrcweir my $params = shift; 288cdf0e10cSrcweir my $dmake = "dmake $params"; 289cdf0e10cSrcweir 290cdf0e10cSrcweir my $sLogPath = $g_sTempDir . "dmake_out_$$"; 291cdf0e10cSrcweir mkdir($sLogPath); 292cdf0e10cSrcweir my $sLogFile = $sLogPath . "/" . $sTarget . ".out"; 293cdf0e10cSrcweir 294cdf0e10cSrcweir # due to the fact, a library name in one project is distinct, we should remember all already run through libraries and 295cdf0e10cSrcweir # supress same libraries, if they occur one more. 296cdf0e10cSrcweir 297cdf0e10cSrcweir if (exists $libraryRunThrough{getLibName($sTarget)}) 298cdf0e10cSrcweir { 299cdf0e10cSrcweir # already done 300cdf0e10cSrcweir return; 301cdf0e10cSrcweir } 302cdf0e10cSrcweir printOnLibrary($sTarget); 303cdf0e10cSrcweir print "\n"; 304cdf0e10cSrcweir 305cdf0e10cSrcweir# redirect tcsh ">&" (stdout, stderr) 306cdf0e10cSrcweir# redirect 4nt ">" (stdout), "2>" (stderr) 307cdf0e10cSrcweir# print "OSNAME: $OSNAME\n"; 308cdf0e10cSrcweir# LLA: redirect check canceled, seems to be not work as I want. 309cdf0e10cSrcweir# my $redirect = ""; 310cdf0e10cSrcweir# if ($OSNAME eq "linux" || $OSNAME eq "solaris") 311cdf0e10cSrcweir# { 312cdf0e10cSrcweir# # print "UNIX, linux or solaris\n"; 313cdf0e10cSrcweir# $redirect = '>>&!' . $sLogFile; 314cdf0e10cSrcweir# } 315cdf0e10cSrcweir# else 316cdf0e10cSrcweir# { 317cdf0e10cSrcweir# if ($OSNAME eq "MSWin32" || $OSNAME eq "OS2") 318cdf0e10cSrcweir# { 319cdf0e10cSrcweir# # test 320cdf0e10cSrcweir# $redirect = ">>$sLogFile 2>>$sLogFile"; 321cdf0e10cSrcweir# } 322cdf0e10cSrcweir# } 323cdf0e10cSrcweir# print "$dmake $redirect\n"; 324cdf0e10cSrcweir 325cdf0e10cSrcweir# LLA: so system does also not work as I imagine 326cdf0e10cSrcweir# system("$dmake $redirect"); 327cdf0e10cSrcweir 328cdf0e10cSrcweir# LLA: next check, use open with pipe 329cdf0e10cSrcweir 330cdf0e10cSrcweir local *LOGFILE; 331cdf0e10cSrcweir if (! open( LOGFILE, '>' . "$sLogFile")) 332cdf0e10cSrcweir { 333cdf0e10cSrcweir print "ERROR: can't open logfile: $sLogFile\n"; 334cdf0e10cSrcweir return; 335cdf0e10cSrcweir } 336cdf0e10cSrcweir 337cdf0e10cSrcweir my $line; 338cdf0e10cSrcweir local *DMAKEOUTPUT; 339cdf0e10cSrcweir if (! open( DMAKEOUTPUT, "$dmake 2>&1 |")) 340cdf0e10cSrcweir { 341cdf0e10cSrcweir print "ERROR: can't open dmake\n"; 342cdf0e10cSrcweir return; 343cdf0e10cSrcweir } 344cdf0e10cSrcweir while ($line = <DMAKEOUTPUT>) 345cdf0e10cSrcweir { 346cdf0e10cSrcweir chomp($line); 347cdf0e10cSrcweir print LOGFILE "$line\n"; 348cdf0e10cSrcweir } 349cdf0e10cSrcweir close(DMAKEOUTPUT); 350cdf0e10cSrcweir close(LOGFILE); 351cdf0e10cSrcweir 352cdf0e10cSrcweir giveOutFailures($sTarget, $sLogFile); 353cdf0e10cSrcweir 354cdf0e10cSrcweir $libraryRunThrough{getLibName($sTarget)} = "done"; 355cdf0e10cSrcweir} 356cdf0e10cSrcweir 357cdf0e10cSrcweir# ------------------------------------------------------------------------------ 358cdf0e10cSrcweirsub interpretLine($) 359cdf0e10cSrcweir{ 360cdf0e10cSrcweir my $line = shift; 361cdf0e10cSrcweir 362cdf0e10cSrcweir my $path; 363cdf0e10cSrcweir my $file; 364cdf0e10cSrcweir 365cdf0e10cSrcweir if ($line =~ /^\#/ || $line =~ /^$/) 366cdf0e10cSrcweir { 367cdf0e10cSrcweir # remark or empty line 368cdf0e10cSrcweir } 369cdf0e10cSrcweir else 370cdf0e10cSrcweir { 371cdf0e10cSrcweir # special format, $file == $path 372cdf0e10cSrcweir ($path, $file) = split(/;/, $line); 373cdf0e10cSrcweir if (! $file) 374cdf0e10cSrcweir { 375cdf0e10cSrcweir $file = $path; 376cdf0e10cSrcweir } 377cdf0e10cSrcweir $file = trim($file); 378cdf0e10cSrcweir $path = trim($path); 379cdf0e10cSrcweir } 380cdf0e10cSrcweir return $path, $file; 381cdf0e10cSrcweir} 382cdf0e10cSrcweir# ------------------------------------------------------------------------------ 383cdf0e10cSrcweirsub runTestsOnPath($$$) 384cdf0e10cSrcweir{ 385cdf0e10cSrcweir my $path = shift; 386cdf0e10cSrcweir my $file = shift; 387cdf0e10cSrcweir my $params = shift; 388cdf0e10cSrcweir 389cdf0e10cSrcweir # empty values 390cdf0e10cSrcweir if (!$path || $path eq "") 391cdf0e10cSrcweir { 392cdf0e10cSrcweir # DBG: print "empty path '$path'\n"; 393cdf0e10cSrcweir return; 394cdf0e10cSrcweir } 395cdf0e10cSrcweir if (!$file || $file eq "") 396cdf0e10cSrcweir { 397cdf0e10cSrcweir # DBG: print "empty file '$file'\n"; 398cdf0e10cSrcweir return; 399cdf0e10cSrcweir } 400cdf0e10cSrcweir 401cdf0e10cSrcweir# print "File: '$file', Path: '$path'\n"; 402cdf0e10cSrcweir print "Work in directory: $path\n"; 403cdf0e10cSrcweir my $newpath = $cwd . $FS . $path; 404cdf0e10cSrcweir# print "chdir to $newpath\n"; 405cdf0e10cSrcweir 406cdf0e10cSrcweir my $error = chdir($newpath); 407cdf0e10cSrcweir cwd(); 408cdf0e10cSrcweir 409cdf0e10cSrcweir # run through the hole makefile.mk and check if SHL<D>TARGET = ... exist, for every target call "dmake test<D>" 410cdf0e10cSrcweir 411cdf0e10cSrcweir local *MAKEFILE_MK; 412cdf0e10cSrcweir if (! open(MAKEFILE_MK, "makefile.mk")) 413cdf0e10cSrcweir { 414cdf0e10cSrcweir print "ERROR: can't open makefile.mk in path: $newpath\n"; 415cdf0e10cSrcweir print "please check your libs2test.txt file in qa directory.\n"; 416cdf0e10cSrcweir } 417cdf0e10cSrcweir my $line; 418cdf0e10cSrcweir my $nNumber; 419cdf0e10cSrcweir my $sTarget; 420cdf0e10cSrcweir my $sLocalParams; 421cdf0e10cSrcweir 422cdf0e10cSrcweir while($line = <MAKEFILE_MK>) 423cdf0e10cSrcweir { 424cdf0e10cSrcweir chomp($line); 425cdf0e10cSrcweir 426cdf0e10cSrcweir if ($line =~ /SHL(\d)TARGET=(.*)/) 427cdf0e10cSrcweir { 428cdf0e10cSrcweir $nNumber = $1; 429cdf0e10cSrcweir $sTarget = trim($2); 430cdf0e10cSrcweir 431cdf0e10cSrcweir # DBG: print "test$number is lib: $target\n"; 432cdf0e10cSrcweir $sLocalParams = $params . " "; # append a whitespace, so we can check if 'test' exist without additional digits 433cdf0e10cSrcweir $sLocalParams =~ s/test\s/test$nNumber/; 434cdf0e10cSrcweir # DBG: print "$sLocalParams\n"; 435cdf0e10cSrcweir if ($bBuildAll == 1 || 436cdf0e10cSrcweir $file eq $sTarget) 437cdf0e10cSrcweir { 438cdf0e10cSrcweir # print "runASingleTest on Target: $sTarget 'dmake $sLocalParams'\n"; 439cdf0e10cSrcweir runASingleTest($sTarget, $sLocalParams); 440cdf0e10cSrcweir } 441cdf0e10cSrcweir else 442cdf0e10cSrcweir { 443cdf0e10cSrcweir # printOnLibrary($sTarget); 444cdf0e10cSrcweir # print " suppressed, not in libs2test.txt\n"; 445cdf0e10cSrcweir } 446cdf0e10cSrcweir } 447cdf0e10cSrcweir } 448cdf0e10cSrcweir close(MAKEFILE_MK); 449cdf0e10cSrcweir} 450cdf0e10cSrcweir 451cdf0e10cSrcweir# ------------------------------------------------------------------------------ 452cdf0e10cSrcweir 453cdf0e10cSrcweirsub main($) 454cdf0e10cSrcweir{ 455cdf0e10cSrcweir my $params = shift; 456cdf0e10cSrcweir# my $sLogFile = shift; # "buildall_$$.out"; 457cdf0e10cSrcweir local *LIBS2TEST; 458cdf0e10cSrcweir my $filename = "libs2test.txt"; 459cdf0e10cSrcweir my $line; 460cdf0e10cSrcweir 461cdf0e10cSrcweir open(LIBS2TEST, $filename) || die "can't open $filename\n"; 462cdf0e10cSrcweir 463cdf0e10cSrcweir while($line = <LIBS2TEST>) 464cdf0e10cSrcweir { 465cdf0e10cSrcweir chomp($line); 466cdf0e10cSrcweir # DOS Hack grrrr... 467cdf0e10cSrcweir while ($line =~ / 468cdf0e10cSrcweir$/) 469cdf0e10cSrcweir { 470cdf0e10cSrcweir $line = substr($line, 0, -1); 471cdf0e10cSrcweir } 472cdf0e10cSrcweir 473cdf0e10cSrcweir # print "$line\n"; 474cdf0e10cSrcweir my $path; 475cdf0e10cSrcweir my $file; 476cdf0e10cSrcweir ($path, $file) = interpretLine($line); 477cdf0e10cSrcweir runTestsOnPath($path, $file, $params); 478cdf0e10cSrcweir } 479cdf0e10cSrcweir close(LIBS2TEST); 480cdf0e10cSrcweir 481cdf0e10cSrcweir print "\nComplete logging information will be found in dir: ".$g_sTempDir."dmake_out_$$/\n"; 482cdf0e10cSrcweir 483cdf0e10cSrcweir if ($nGlobalFailures > 0) 484cdf0e10cSrcweir { 485cdf0e10cSrcweir print "\nFailures over all occured: $nGlobalFailures\n"; 486cdf0e10cSrcweir print "\nPASSED FAILED.\n"; 487cdf0e10cSrcweir } 488cdf0e10cSrcweir else 489cdf0e10cSrcweir { 490cdf0e10cSrcweir print "\nPASSED OK.\n"; 491cdf0e10cSrcweir } 492cdf0e10cSrcweir} 493cdf0e10cSrcweir 494cdf0e10cSrcweir# ------------------------------------------------------------------------------ 495cdf0e10cSrcweir 496cdf0e10cSrcweir# TODO: 497cdf0e10cSrcweir# -verbose 498cdf0e10cSrcweir# -fan - \ | / 499cdf0e10cSrcweir 500cdf0e10cSrcweir# END! 501cdf0e10cSrcweir 502