toolsandutils/e32tools/elftools/test/Elftran-test.pl
changeset 0 83f4b4db085c
child 1 d4b442d23379
--- /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=<CMDPIPE>;
+        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