diff -r 55fa1ec415c6 -r 8f0df5c82986 tsrc/testing/tools/siscreator.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tsrc/testing/tools/siscreator.pl Tue May 25 12:44:54 2010 +0300 @@ -0,0 +1,354 @@ +use warnings; +use Cwd; # for cwd +use File::Copy; +use File::Path; + +my $debug = 0; +my $allowRun = 1; +my $relType = ""; +my $sisPath = "videoplayer\\tsrc\\testing\\sis"; +my $certFile = "Nokia_RnDCert_02\.der"; +my $keyFile = "Nokia_RnDCert_02\.key"; +my $comment = ";TEMPCOMMENT "; + + +######################################## +# PKG LISTS +# + +my @engineTests = ( + "videoplayer\\tsrc\\testing\\sis\\fusion_engine_tests.pkg", + "videoplayer\\mediasettings\\mediasettingsengine\\tsrc\\mediasettingsenginetest\\group\\mpxmediasettingsenginetest.pkg", + "videoplayer\\mediasettings\\videoplayersettingsengine\\tsrc\\vpsettingsenginetest\\group\\vcxnssettingsenginetest.pkg", + "videoplayer\\videocollection\\mpxmyvideoscollection\\tsrc\\mpxmvcolltest\\group\\VCXMyVideosCollectionPluginTest.pkg", + "videoplayer\\videoplayer_plat\\videoplayer_startup_api\\tsrc\\group\\VideoPlayerStartupApiTest.pkg", + "videoplayer\\videoplayer_plat\\video_player_file_details_dialog_api\\tsrc\\group\\ui_FileDetailsDialogtest.pkg", + "videoutils\\videoutils_plat\\videoscheduler_api\\tsrc\\group\\videoscheduler_apitest.pkg", + "videoutils\\videoutils_plat\\videoconnutility_api\\tsrc\\group\\videoconnutility_apitest.pkg" + ); + +my @unitTests = ( + "videoplayer\\videoplayback\\videohelix\\tsrc\\ut_videohelixtest\\group\\videohelixtest.pkg", + "videoplayer\\videoplayback\\videoplaybackcontrols\\tsrc\\videoplaybackcontrols_test\\group\\videoplaybackcontrolstest.pkg", + "videoplayer\\videoplayback\\videoplaybackviews\\tsrc\\ut_userinputhandlertest\\group\\userinputhandlertest.pkg", + "videoplayer\\videoplayerapp\\mpxvideoplayer\\tsrc\\ut_mpxvideoplayertest\\group\\mpxvideoplayertest.pkg", + "videoplayer\\videocollection\\hgmyvideos\\tsrc\\ut_vcxhgmyvideosmainview\\group\\VcxHgMyVideosMainViewTest.pkg" + ); + +######################################## +# PARSE ARGUMENTS +# + +while(scalar(@ARGV) >= 1) +{ + my $argument = shift(@ARGV); + + if($argument eq "-sispath") + { + $sisPath = shift(); + } + + elsif($argument eq "-type") + { + $relType = shift(); + } + + elsif($argument eq "-norun") + { + $allowRun = 0; + } + + elsif($argument eq "-debug") + { + $debug = 1; + } + + elsif($argument eq "-help") + { + ShowHelp(); + } + + else + { + ShowHelp(); + } +} + +######################################## +# MAIN FUNCTION +# + +my $basepath = FindBasePath(); +die("NO VIDEOAPP_DOMAIN FOLDER FOUND") if $basepath eq ""; + +print "CREATING ${basepath}\\${sisPath}\n" if $debug; +mkpath("${basepath}\\${sisPath}"); + +# if sispath doesn't contain files for signing, then search them under basepath +if ( !-e "${basepath}\\${sisPath}\\${certFile}" and !-e "${basepath}\\${sisPath}\\${keyFile}" ) +{ + my @certfiles; + FindFiles($basepath, $certFile, 1, \@certfiles); + die("No $certFile found under ${basepath} !\n") if ( !$certfiles[0] ); + my @keyfiles; + FindFiles($basepath, $keyFile, 1, \@keyfiles); + die("No $keyFile found under ${basepath} !\n") if ( !$keyfiles[0] ); + + print "COPYING $keyfiles[0] TO ${basepath}\\${sisPath}\\${keyFile}\n" if $debug; + copy( $keyfiles[0], "${basepath}\\${sisPath}\\${keyFile}" ) if $allowRun; + + print "COPYING $keyfiles[0] TO ${basepath}\\${sisPath}\\${certFile}\n" if $debug; + copy( $certfiles[0], "${basepath}\\${sisPath}\\${certFile}" ) if $allowRun; +} + +die("No $certFile found in ${basepath}\\${sisPath}\n") if ( !-e "${basepath}\\${sisPath}\\${certFile}" ); +die("No $keyFile found in ${basepath}\\${sisPath}\n") if ( !-e "${basepath}\\${sisPath}\\${keyFile}" ); + +foreach my $pkg ( @engineTests ) +{ + CreateSis( $basepath, $pkg, $sisPath, $relType ); +} + +foreach my $pkg ( @unitTests ) +{ + CreateSis( $basepath, $pkg, $sisPath, $relType ); +} + +######################################## +# FindBasePath +# + +sub FindBasePath +{ + print ">> FindBasePath\n" if $debug; + $currpath = cwd; + $basepath = ""; + my $domain = "VideoApp_Domain"; + + my $pos = rindex( $currpath, $domain ); + + if( $pos != -1 ) + { + $basepath = "\\" . substr( $currpath, 3, $pos + length( $domain ) - 3 ); + $basepath =~ s/\//\\/g; + print "BASEPATH FOUND: $basepath\n" if $debug; + } + + print "<< FindBasePath (" . $basepath . ")\n" if $debug; + return $basepath; +} + +######################################## +# CreateSis +# + +sub CreateSis +{ + my ( $baseDir, $pkgPath, $targetDir, $relType ) = @_; + print ">>> CREATESIS\n" if $debug; + my $cmd = ""; + print "baseDir: $baseDir\n" if $debug; + print "pkgPath: $pkgPath\n" if $debug; + print "targetDir: $targetDir\n" if $debug; + + my $pos = rindex( $pkgPath, '\\' ); + print "rindex: $pos\n" if $debug; + + my $temppath = substr( $pkgPath, 0, $pos ); + my $filename = substr( $pkgPath, $pos + 1, -4 ); + + # add type to the end of the filename + my $relfilename = $filename; + if( $relType ne "" ) + { + $relfilename .= "_" . $relType; + } + + print "path: $temppath\n" if $debug; + print "file: $filename\n" if $debug; + print "relfile: $relfilename\n" if $debug; + + + chdir("${basepath}\\${temppath}"); + + AddComment( "${filename}.pkg" ) if $allowRun; + if( $relType ne "" ) + { + print "\nCREATE TEMPORARY PKG\n\n" if $debug; + CreatePkg( $filename, $relType ); + } + $cmd = "call makesis ${relfilename}\.pkg ${relfilename}\.sis"; + print $cmd . "\n" if $debug; + system($cmd) if $allowRun; + RemComment( "${filename}.pkg" ) if $allowRun; + copy( "${relfilename}\.sis", "${baseDir}\\${targetDir}\\${relfilename}\.sis" ) if $allowRun; + chdir("${baseDir}\\${targetDir}"); + $cmd = "signsis ${relfilename}\.sis ${relfilename}\.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key"; + system($cmd) if $allowRun; + unlink ( "${relfilename}\.sis" ) if $allowRun; + print "<<< CREATESIS\n" if $debug; +} + + +######################################## +# AddComment +# + +sub AddComment +{ + my ($file) = @_; + + open(FILE_HANDLE, $file) or die ("Could not read file '$file'\n"); + my @lines = ; + close(FILE_HANDLE); + + open(FILE_HANDLE, ">$file") or die ("Could not write file '$file'\n"); + foreach my $line ( @lines ) + { + if( $line =~ /\.\.\/init\/testframework\.ini/i or $line =~ /\/cccccc00\.cre/i or + $line =~ /\.\.\\init\\testframework\.ini/i or $line =~ /\\cccccc00\.cre/i ) + { + if( $line !~ /$comment/ ) + { + print $line . "\n" if $debug; + $line = $comment . $line; + print $line . "\n" if $debug; + } + } + print FILE_HANDLE $line; + } + close(FILE_HANDLE); +} + +######################################## +# RemComment +# + +sub RemComment +{ + my ($file) = @_; + + open(FILE_HANDLE, $file) or die ("Could not read file '$file'\n"); + my @lines = ; + close(FILE_HANDLE); + + open(FILE_HANDLE, ">$file") or die ("Could not write file '$file'\n"); + foreach my $line ( @lines ) + { + if( $line =~ /\.\.\/init\/testframework\.ini/i or $line =~ /\/cccccc00\.cre/i or + $line =~ /\.\.\\init\\testframework\.ini/i or $line =~ /\\cccccc00\.cre/i ) + { + if( $line =~ /$comment/ ) + { + print $line . "\n" if $debug; + $line = substr( $line, length( $comment ) ); + print $line . "\n" if $debug; + } + } + print FILE_HANDLE $line; + } + close(FILE_HANDLE); +} + +######################################## +# CreatePkg +# + +sub CreatePkg +{ + my ($file, $type) = @_; + + open(FILE_HANDLE, "${file}\.pkg") or die ("Could not read file '${file}\.pkg'\n"); + my @lines = ; + close(FILE_HANDLE); + + my $currenttype = ""; + open(FILE_HANDLE, ">${file}_${type}\.pkg") or die ("Could not write file '${file}_${type}\.pkg'\n"); + foreach my $line ( @lines ) + { + if( $line =~ /\/armv5\/(\w+)\//i ) + { + $currenttype = $1; + if( $currenttype ne $type ) + { + print $line if $debug; + $line =~ s/\/$currenttype\//\/$type\//; + print $line if $debug; + } + } + print FILE_HANDLE $line; + } + close(FILE_HANDLE); +} + +#------------------------------------------------------------------------------------ +# FindFiles +# Parameters: +# $goDir, where to start finding +# $fileSearch, filename search +# $searchType, 0 = fullname search, 1 = filetype search +# $refIncfiles, reference to array which will hold found files +#------------------------------------------------------------------------------------ +sub FindFiles +{ + my ($godir, $fileSearch, $searchType, $refIncfiles) = @_; + + my $startDir = cwd; + + chdir($godir) or die("Could not change dir to $godir"); + + #print("Now in: " . cwd . "\n"); + + opendir(DIR, "."); + my @filelist = sort(readdir(DIR)); + closedir(DIR); + + foreach my $file(@filelist) + { + if($file eq "." or $file eq "..") {next}; + + if (-d $file) + { + FindFiles( $file, $fileSearch, $searchType, $refIncfiles); + } else + { + if( ($file =~ m/$fileSearch/i and $searchType == 0 ) or ($file =~ m/$fileSearch$/i and $searchType == 1 ) ) + { + $file = cwd . "/" . $file; + push @$refIncfiles, $file; + #print("$file\n"); + ; + } + } + } + + chdir ($startDir) or die("Could not change dir to $startDir"); +} + +#------------------------------------------------------------------------------------ +# ShowHelp +#------------------------------------------------------------------------------------ +sub ShowHelp { + +print <