diff -r 000000000000 -r 83f4b4db085c toolsandutils/e32tools/elftools/test/Elftran-test.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolsandutils/e32tools/elftools/test/Elftran-test.pl Tue Feb 02 01:39:43 2010 +0200 @@ -0,0 +1,184 @@ +# +# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# +#!/usr/bin/perl -w +use strict; + +# Perl script that creates PKG files and test MAKESIS tools with different ranges + +#my $logFile = "\\epoc32\\winscw\\c\\ELFTRAN_test.txt"; +my $logFile = "ELFTRAN_test.txt"; +my @retval = 0; + +# +# Counters for results +# +my $NumberOfTests = 0; +my $NumberOfPassed = 0; +my $NumberOfFailed = 0; + +# +#Function to write log into file +# +sub WriteLog { + my ($log) = @_; + #public $logfile; + my $fh; + unless( open($fh, ">> $logFile")) { + printf STDERR "Can\'t open $logFile:$!\n"; + return; + } + printf $fh $log; + printf $log; + close $fh; +} + + +# +# Run command with prepared command line parameters and administrate its result +# +sub RunCommand { + + my( $command, $expectedResult, $expectedLog, $expectedVal) = @_; + #my ($pkgfile) = @_[0]; + #my ($expectedResult) = @_[1]; + #$pkgfile =~ s/\.pkg//; + + #@retval = system("$command >run.log"); + @retval = system("$command >NUL"); + my $logMsg = sprintf "Expected code:%5d result Code:%5d \n", $expectedResult, @retval; + WriteLog( $logMsg); + + #open CMDPIPE, "$command 3>&1 2>&1 | "; + open CMDPIPE, "$command 2>&1 | "; + + my @lines=; + close CMDPIPE; + + my $receivedVal; + if( $expectedLog ne "") + { + $receivedVal = ProcessResult($expectedLog, $expectedVal, @lines); + $logMsg = sprintf "Expected %s:%s result value:%s \n", $expectedLog, $expectedVal, $receivedVal; + WriteLog( $logMsg); + } + else + { + $receivedVal=$expectedVal; + } + + $NumberOfTests++; + + if( $retval[0] == $expectedResult ) { + if( $receivedVal eq $expectedVal ){ + $NumberOfPassed++; + WriteLog("Passed\n\n"); + } + else + { + $NumberOfFailed++; + WriteLog("Failed\n\n"); + } + } + else { + $NumberOfFailed++; + WriteLog("Failed\n\n"); + } + + #unlink("$pkgfile-tmp.sis"); + #unlink("$pkgfile.log"); + #unlink("$pkgfile.pkg"); + +} + +sub ProcessResult { + my ($expLog, $expVal, @result) = @_; + for my $line (@result) { + #WriteLog( $line); + if($line =~ /($expLog):[ \t](.*)/i) + #if($line =~ /.?($expLog)[ :][ \t](.*)/i) + { + #WriteLog($1); + if( $2 eq $expVal) + { + return $2; + } + } + + } + return ""; +} + +# +# Main +# +# Create environment and control test flow to testing ELFTRAN +# + +unlink($logFile); +WriteLog("ELFTRAN test.\n\n"); + + +my $Command = "ELFTRAN.EXE"; +my $Path = "\\epoc32\\tools\\"; +# +# Array of contents of ELFTRAN parameters and expected results +# +# command, options inputfile/, outfile expected , expected log, expeced log +# e32imagefile result message value +# ------------------------------------------------------------------------------------------------------------------------------------------------ +my @TestItems = ( [$Command, "", "", "", 65280, , "", ""], + [$Command, "-h", "", "", 256, , "ERROR", "Cannot open -h for input."], + [$Command, "-dump h -nocompress", "camera1_test.exe", "", 0, , "Compression", "00000000"], + [$Command, "-dump h", "camera1_test.exe", "", 0, , "Compression", "101f7afc"], + [$Command, "-dump h -nocompress", "camera1_test.exe", "", 0, , "Compression", "00000000"], + [$Command, "-dump h -compress", "camera1_test.exe", "", 0, , "Compression", "101f7afc"], + [$Command, "-dump h -nocompress", "camera1_test.exe", "", 0, , "Compression", "00000000"], + [$Command, "-dump h -compressionmethod bytepair", "camera1_test.exe", "", 0, , "Compression", "102822aa"], + [$Command, "-dump h -compressionmethod none", "camera1_test.exe", "", 0, , "Compression", "00000000"], + [$Command, "-dump h -compressionmethod deflate", "camera1_test.exe", "", 0, , "Compression", "101f7afc"], + [$Command, "-dump h -compress -compressionmethod bytepair", "camera1_test.exe", "", 0, , "Compression", "102822aa"], + [$Command, "-dump h -compress -compressionmethod deflate", "camera1_test.exe", "", 0, , "Compression", "101f7afc"], + [$Command, "-dump h -compress -compressionmethod none", "camera1_test.exe", "", 0, , "Compression", "00000000"], + [$Command, "-dump h -nocompress -compressionmethod deflate", "camera1_test.exe", "", 0, , "Compression", "00000000"], + [$Command, "-dump h -nocompress -compressionmethod none", "camera1_test.exe", "", 0, , "Compression", "00000000"], + [$Command, "-dump h -nocompress -compressionmethod bytepair", "camera1_test.exe", "", 0, , "Compression", "00000000"], + ); + + +# +# Do test for each elements of TestItems array +# +my $loop = 1; +for my $Test ( @TestItems ) { + + WriteLog( sprintf "Loop:%3d\n", $loop++); + + my $command = sprintf "%s%s %s %s %s", $Path, $Test->[0], $Test->[1], $Test->[2], $Test->[3]; + my $logLine = "Command: '$command'\n"; + WriteLog($logLine); + + RunCommand($command, $Test->[4], $Test->[5], $Test->[6]); + +} + + +# +# Display the result +# +WriteLog("\n\nTests completed OK\n"); +WriteLog(sprintf "Run: %d\n", $NumberOfTests ); +WriteLog(sprintf "Passed: %d\n", $NumberOfPassed ); +WriteLog(sprintf "%d tests failed out of %d\n", $NumberOfFailed, $NumberOfTests ); \ No newline at end of file