diff -r 7259cf1302ad -r 169364e7e4b4 stif/TestInterface/src/TestInterface.cpp --- a/stif/TestInterface/src/TestInterface.cpp Tue Jul 06 16:05:13 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,620 +0,0 @@ -/* -* 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: This file contains TestInterface implementation. -* -*/ - -// INCLUDE FILES -#include -#include -#include "StifTestInterface.h" -#include "TestServerModuleIf.h" -#include "StifTestModule.h" -#include -//#include -#include "version.h" - -// EXTERNAL DATA STRUCTURES -// None - -// EXTERNAL FUNCTION PROTOTYPES -// None - -// CONSTANTS -// None - -// MACROS -// None - -// LOCAL CONSTANTS AND MACROS -// None - -// MODULE DATA STRUCTURES -// None - -// LOCAL FUNCTION PROTOTYPES -// None -/* -------------------------------------------------------------------------------- - - Class: - - - Method: StifDriveLetters - - Description: This defines drive letters that is available in STIF TF. - - Parameters: TInt aDriveNumber: in: Number to indicate drive letter - TInt& aCount: inout: Counts of drives that is available - - Return Values: const TChar: Returns a drive letter that is select by - aDriveNumber - - Errors/Exceptions: None - - Status: Proposal - -------------------------------------------------------------------------------- -*/ -//@spe -/* -EXPORT_C const TChar StifDriveLetters( TInt aDriveNumber, TInt& aCount ) - { - static TChar* const EStifDriveLetters[] = - { - ( TChar* )L"a", - ( TChar* )L"b", - ( TChar* )L"c", - ( TChar* )L"d", - ( TChar* )L"e", - ( TChar* )L"f", - ( TChar* )L"g", - ( TChar* )L"h", - ( TChar* )L"i", - ( TChar* )L"j", - ( TChar* )L"k", - ( TChar* )L"l", - ( TChar* )L"m", - ( TChar* )L"n", - ( TChar* )L"o", - ( TChar* )L"p", - ( TChar* )L"q", - ( TChar* )L"r", - ( TChar* )L"s", - ( TChar* )L"t", - ( TChar* )L"u", - ( TChar* )L"v", - ( TChar* )L"w", - ( TChar* )L"x", - ( TChar* )L"y", - ( TChar* )L"z", - }; - aCount = (sizeof( EStifDriveLetters )/sizeof(TChar*)); - return TChar( *EStifDriveLetters[aDriveNumber] ); - - } -*/ - -// FORWARD DECLARATIONS -// None - -// ==================== LOCAL FUNCTIONS ======================================= -// None - -/* -------------------------------------------------------------------------------- - - DESCRIPTION - - This module contains the implementation of TTestCaseInfo class - member function. - -------------------------------------------------------------------------------- -*/ - -// ================= MEMBER FUNCTIONS ========================================= - -/* -------------------------------------------------------------------------------- - - Class: TTestCaseInfo - - Method: TTestCaseInfo - - Description: This method is the constructor of class TTestCaseInfo. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TTestCaseInfo::TTestCaseInfo() - { - iCaseNumber = -1; - iTitle.Zero(); - iTimeout = 0; - iPriority = EPriorityNormal; - - } - -/* -------------------------------------------------------------------------------- - - DESCRIPTION - - This module contains the implementation of TTestInfo class - member function. - -------------------------------------------------------------------------------- -*/ - -// ================= MEMBER FUNCTIONS ========================================= - -/* -------------------------------------------------------------------------------- - - Class: TTestInfo - - Method: TTestInfo - - Description: This method is the constructor of class TTestInfo. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TTestInfo::TTestInfo() - { - - iModuleName.Zero(); - iConfig.Zero(); - - } - -/* -------------------------------------------------------------------------------- - - DESCRIPTION - - This module contains the implementation of TTestResult class - member function. - -------------------------------------------------------------------------------- -*/ - -// ================= MEMBER FUNCTIONS ========================================= - -/* -------------------------------------------------------------------------------- - - Class: TTestResult - - Method: TTestResult - - Description: This method is the constructor of class TTestResult. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TTestResult::TTestResult() - { - iResult = 0; - iResultDes.Zero(); - - } - -/* -------------------------------------------------------------------------------- - - Class: TTestResult - - Method: TTestResult - - Description: Sets result and result description of the test case. - - Parameters: TInt aResultCode: in: Symbian error code - const TResultDes& aResultDes: in: Result description of the - test case - - Return Values: None - - Errors/Exceptions: None - - Status: Proposal - -------------------------------------------------------------------------------- -*/ -EXPORT_C void TTestResult::SetResult( TInt aResultCode, - const TDesC& aResultDes ) - { - iResult = aResultCode; - // If description is too length then cut. - if( aResultDes.Length() > KStifMaxResultDes ) - { - iResultDes = aResultDes.Left( KStifMaxResultDes ); - } - else - { - iResultDes = aResultDes; - } - - } - -/* -------------------------------------------------------------------------------- - - DESCRIPTION - - This module contains the implementation of TFullTestResult class - member function. - -------------------------------------------------------------------------------- -*/ - -// ================= MEMBER FUNCTIONS ========================================= - -/* -------------------------------------------------------------------------------- - - Class: TFullTestResult - - Method: TFullTestResult - - Description: This method is the constructor of class TFullTestResult. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TFullTestResult::TFullTestResult(): - iStartTime( 0 ), - iEndTime( 0 ) - { - } - -/* -------------------------------------------------------------------------------- - - DESCRIPTION - - This module contains the implementation of TTestProgress class - member function. - -------------------------------------------------------------------------------- -*/ - -// ================= MEMBER FUNCTIONS ========================================= - -/* -------------------------------------------------------------------------------- - - Class: TTestProgress - - Method: TTestProgress - - Description: This method is the constructor of class TTestProgress. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TTestProgress::TTestProgress() - { - iPosition = 0; - iDescription.Zero(); - iText.Zero(); - - } - -/* -------------------------------------------------------------------------------- - - DESCRIPTION - - This module contains the implementation of TErrorNotification class - member function. - -------------------------------------------------------------------------------- -*/ - -// ================= MEMBER FUNCTIONS ========================================= - -/* -------------------------------------------------------------------------------- - - Class: TErrorNotification - - Method: TErrorNotification - - Description: This method is the constructor of class TTestProgress. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TErrorNotification::TErrorNotification() - { - iPriority = 0; - iModule.Zero(); - iText.Zero(); - - } - -/* -------------------------------------------------------------------------------- - - Class: - - - Method: StartSession - - Description: This works and used only in EKA2 environment and used from - STIF TestFramework internally. - Executable module uses defined capabilities(PlatSec's - Capability model) to start session. Function for starting - the TestServer and Testmodule/TestClass. - - Starts a new server. Server will be running its own - thread and this functions returns when server is up and - running or server start-up fails. - - Parameters: None - - Return Values: TInt Error code / KErrNone - - Errors/Exceptions: None - - Status: Proposal - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt StartSession() - { - //__UHEAP_MARK; - - // Get module name from command line - const TInt length = User::CommandLineLength(); - HBufC* cmdLine = HBufC::New( length ); - - if ( cmdLine == NULL ) - { - //__UHEAP_MARKEND; - return KErrNoMemory; - } - - TPtr moduleName = cmdLine->Des(); - User::CommandLine( moduleName ); - - RDebug::Print(_L("StartSession() Received data [%S]"), &moduleName); - - // Extract semaphore name passed in data - TInt index = moduleName.Find(_L(" ")); - RDebug::Print(_L("StartSession() Space separator found at position [%d]"), index); - TPtrC semaphoreName = moduleName.Mid(index + 1); - moduleName = moduleName.Left(index); - - RDebug::Print(_L("StartSession() Extracted module name [%S] and sempahore name [%S]"), &moduleName, &semaphoreName); - - // Open start-up synchronization semaphore - RSemaphore startup; - RDebug::Print(_L(" Opening start-up semaphore")); -// TName semaphoreName = _L("startupSemaphore"); -// semaphoreName.Append( moduleName ); - - TInt res = startup.OpenGlobal(semaphoreName); - RDebug::Print(_L("Opening result %d"), res); - - - TFileName serverName; - TInt r = StartNewServer ( moduleName, serverName, EFalse, startup); - - if ( r == KErrAlreadyExists ) - { - // Ok, server was already started - RDebug::Print(_L("Server already started, signaling semaphore and exiting")); - startup.Signal(); - //__UHEAP_MARKEND; - - delete cmdLine; - - return KErrNone; - } - else - { - RDebug::Print(_L("Server is finished, code %d"), r); - } - - //__UHEAP_MARKEND; - - // Program execution never comes here, because StartNewServer doesn't return - // unless server is already started. - - delete cmdLine; - - // Return start-up result. - return r; - - } - -/* -------------------------------------------------------------------------------- - - Class: TStifUtil - - Method: CorrectFilePath - - Description: Checks if file path contains drive letter. If not file is serched - on all drives and first hit is added to file name. - - Parameters: TDes& aFilePath: in/out: file path to correct - - Return Values: None - - Errors/Exceptions: Leaves if some of called leaving methods leaves - -------------------------------------------------------------------------------- -*/ -EXPORT_C void TStifUtil::CorrectFilePathL( TDes& aFilePath ) - { - _LIT( KDriveSelector, ":\\" ); - _LIT( KDriveSelectorFormat_1, "%c:" ); - _LIT( KDriveSelectorFormat_2, "%c:\\" ); - TChar KDriveZ = EDriveZ;//'Z'; - - _LIT( KBackslash, "\\" ); - - TInt length = aFilePath.Length(); - - if (length == 0 ) - { - return; - } - if (length > 2 ) - { - // Check if file path contains drive selector - if ( aFilePath.Mid( 1, 2 ) == KDriveSelector ) - { - // File path contains selector letter so we have nothing to do here - return; - } - } - - // Check if file path contains backslash at the begining and - // select proper drive selector format according to this information - TInt driveSelectorFormat = 2; - if ( aFilePath.Mid( 0, 1 ) == KBackslash ) - { - driveSelectorFormat = 1; - } - - RFs rfs; - if ( rfs.Connect() != KErrNone ) - { - return; - } - - // Get available drives list, revers it order and move z drive at - // the end of the list. - TDriveList drivesList; - rfs.DriveList(drivesList); - - // Set drive variable to last drive (except for Z, which will be checked at the end) - char drive = 'Y' ; - - // Loop through all the drives in following order: YX..CBAZ - while(drive >= 'A' && drive <= 'Z') - { - // Do further action only if drive exists - TInt driveint; - rfs.CharToDrive(drive, driveint); - if(drivesList[driveint]) - { - //further checking (drive selector and file existence) - - // Prepare drive selector - TBuf<3> driveSelector; - if ( driveSelectorFormat == 1 ) - { - driveSelector.Format( KDriveSelectorFormat_1, drive ); - } - else if ( driveSelectorFormat == 2 ) - { - driveSelector.Format( KDriveSelectorFormat_2, drive ); - } - - aFilePath.Insert( 0, driveSelector ); - - TEntry entry; - if ( rfs.Entry(aFilePath, entry) == KErrNone ) - { - rfs.Close(); - return; - } - - // File does not exists on selected drive. Restoring orginal file path - aFilePath.Delete( 0, driveSelector.Length() ); - }//if(drivesList[driveint]) - - // Select next drive - if(drive == 'Z') - break; // the last driver - else if(drive == 'A' ) - drive = 'Z'; //after checking A check Z - else - drive = (TChar)(TInt(drive)-1) ; //after checking Y check X and so on in reverse alphabetical order - } //while - rfs.Close(); - } - -/* -------------------------------------------------------------------------------- - - Class: TStifUtil - - Method: STIFVersion - - Description: Method used to retrieve version of STIF by both STIF and STIF UI - - Parameters: TInt& aMajorV - parameter used to pass major STIF version - TInt& aMinorV - parameter used to pass minor STIF version - TInt& aBuildV - parameter used to pass build version of STIF - TDes& aRelDate - parameter used to pass information about release date - - Return Values: None - -------------------------------------------------------------------------------- -*/ -EXPORT_C void TStifUtil::STIFVersion(TInt& aMajorV, TInt& aMinorV, TInt& aBuildV, TDes& aRelDate) - { - aMajorV = STIF_MAJOR_VERSION; - aMinorV = STIF_MINOR_VERSION; - aBuildV = STIF_BUILD_VERSION; - aRelDate = TO_UNICODE(STIF_REL_DATE); - } - -// End of File