diff options
Diffstat (limited to 'sc/source/ui/vba/testvba/runTests.pl')
-rwxr-xr-x | sc/source/ui/vba/testvba/runTests.pl | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/sc/source/ui/vba/testvba/runTests.pl b/sc/source/ui/vba/testvba/runTests.pl new file mode 100755 index 000000000000..e686a1d4cb89 --- /dev/null +++ b/sc/source/ui/vba/testvba/runTests.pl @@ -0,0 +1,121 @@ +#!/usr/bin/perl -w +use URI::Escape; +use File::Basename; +use Cwd; +use Cwd 'abs_path'; + +$numArgs = $#ARGV + 1; +print "thanks, you gave me $numArgs command-line arguments.\n"; + +foreach $argnum (0 .. $#ARGV) { + print "$ARGV[$argnum]\n"; +} + + +my $binDir = abs_path( dirname($0) ); + +my $sysDir = "unix"; +my $fileSep = "/"; +my $theResult; +my $officepath = shift || die "please specify path to office installation program dir"; +my $DocName = shift || ""; +my $programpath = "$officepath"."3/program:$officepath/program:"; +my $basiclibrarypath = "$officepath/basis3.3/program"; +my $urelibpath = "$officepath/ure/lib"; +my $binext = ""; +my $testDocDir = "$binDir/TestDocuments"; +my $testLogDir = "$binDir/Logs"; +my $testclientname = "testclient"; +my $buildtestclient = "../../../../unxlngi6.pro/bin/$testclientname"; + +# test testclient +if ( -e "$buildtestclient" ) +{ + print "use the latest build\n"; + system( "cp $buildtestclient ." ); +} +elsif ( !( -e "$testclientname" ) ) +{ + print "$testclientname do not exist\n"; + exit; +} + +# test for uname +system("uname"); +$exit_value = $? >> 8; +$signal_num = $? & 127; +$dumped_core = $? & 128; + +$failed = ( $exit_value || $signal_num || $dumped_core ); + +print "$failed = ( $exit_value || $signal_num || $dumped_core )\n"; + +if ( !$failed && open(UNAME, "uname -a|") ) { + $theResult = <UNAME>; + close(UNAME); + if ( $theResult =~ /^CYGWIN/ ) { + # windows under cygwin + $sysDir = "win" ; + $tmpPath=$ENV{"PATH"}; + $ENV{"PATH"} = "$officepath:$tmpPath"; + $testDocDir=`cygpath -m $testDocDir`; + uri_escape($testDocDir); + # hacky windows url construction + $testDocDir="file:///$testDocDir"; + + chomp($testDocDir); + #print "*** doc dir is $testDocDir\n"; + $testLogDir = `cygpath -m "$testLogDir"`; + uri_escape($testLogDir); + $testLogDir="file:///$testLogDir"; + chomp($testLogDir); + #print "*** log dir is $testLogDir\n"; + $binext = ".exe"; + } + else{ + # unix we need to find sal etc. ( from the office path ) + my $tmpPath=$ENV{"PATH"}; + $ENV{"PATH"} = "$programpath:$basiclibrarypath:$urelibpath/../bin:$tmpPath"; + $tmpPATH = $ENV{"LD_LIBRARY_PATH"}; + $ENV{"LD_LIBRARY_PATH"} = "$officepath:$programpath:$basiclibrarypath:$urelibpath:$urelibpath../bin/javaldx:$urelibpath/../bin:$tmpPATH"; + $ENV{"LD_LIBRARY_PATH"} = "$officepath:$programpath:$basiclibrarypath:$urelibpath:$tmpPATH"; + my $testPath = $ENV{"LD_LIBRARY_PATH"}; + print "$testPath\n"; + $testPath = $ENV{"PATH"}; + print "$testPath\n"; + $ENV{"STAR_RESOURCEPATH"} = "$officepath/basis3.0/program/resource"; + $ENV{"SAL_ALLOW_LINKOO_SYMLINKS"} = "1"; + $testPath = $ENV{"LANG"}; + print "$testPath\n"; + } +} +else +{ + # ordinary windows, not sure if this will actually work + $sysDir = "win" ; + $tmpPath=$ENV{"PATH"}; + $ENV{"PATH"} = "$tmpPath;$officepath"; + $binext = ".exe"; +} + +# the exe needs system paths or urls ( urls are by far the least troublesome ) + +my $runCmd = ""; +my $analyseCmd = ""; + +if ( "$DocName" eq "" ) +{ + $runCmd = "$binDir/testclient$binext $testDocDir $testLogDir"; + $analyseCmd = "perl $binDir/testResults.pl $binDir/Logs $binDir/TestDocuments/logs/$sysDir"; +} +else +{ + $runCmd = "$binDir/testclient$binext $testDocDir $testLogDir $testDocDir/$DocName"; + $analyseCmd = "perl $binDir/testResult.pl $binDir/Logs $binDir/TestDocuments/logs/$sysDir $DocName"; +} +print "runCmd = $runCmd\n"; + +system ("rm -rf $testLogDir/*"); +my $status = system( $runCmd ); +print "analyseCmd = $analyseCmd\n"; +$status = system( $analyseCmd ); |