diff -r 3406c99bc375 -r 07b41fa8d1dd stif/StifTFwIf/src/UIEngine.cpp --- a/stif/StifTFwIf/src/UIEngine.cpp Thu Jul 15 20:25:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1310 +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: CUIEngine: This object executes test cases from -* STIF Test Framework. -* -*/ - -// INCLUDE FILES -#include -#include -#include -#include "UIEngineEvent.h" -#include -#include "UIEngineError.h" -#include -#include "Logging.h" - -// EXTERNAL DATA STRUCTURES -// None - -// EXTERNAL FUNCTION PROTOTYPES -// None - -// CONSTANTS -_LIT( KUIEngine, "CUIEngine" ); - -// MACROS -#ifdef LOGGER -#undef LOGGER -#endif -#define LOGGER iLogger - -// LOCAL CONSTANTS AND MACROS -// None - -// MODULE DATA STRUCTURES -// None - -// LOCAL FUNCTION PROTOTYPES -// None - -// FORWARD DECLARATIONS -// None - -// ==================== LOCAL FUNCTIONS ======================================= - -// ================= MEMBER FUNCTIONS ========================================= - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: CUIEngine - - Description: Default constructor - - C++ default constructor can NOT contain any code, that - might leave. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -CUIEngine::CUIEngine( CUIIf* aUi ): - iUi( aUi ) - { - - __RDEBUG( _L( "CUIEngine::CUIEngine()" ) ); - - } - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: ConstructL - - Description: Symbian OS second phase constructor - - Symbian OS default constructor can leave. - - Parameters: None - - Return Values: None - - Errors/Exceptions: Leaves if called Open method returns error - - Status: Draft - -------------------------------------------------------------------------------- -*/ -void CUIEngine::ConstructL() - { - // Logger's setting definitions - TLoggerSettings loggerSettings; - loggerSettings.iCreateLogDirectories = EFalse; - loggerSettings.iOverwrite = ETrue; - loggerSettings.iTimeStamp = ETrue; - loggerSettings.iLineBreak = ETrue; - loggerSettings.iEventRanking = EFalse; - loggerSettings.iThreadId = EFalse; - loggerSettings.iHardwareFormat = CStifLogger::ETxt; - loggerSettings.iHardwareOutput = CStifLogger::EFile; - loggerSettings.iEmulatorFormat = CStifLogger::ETxt; - loggerSettings.iEmulatorOutput = CStifLogger::EFile; - loggerSettings.iUnicode = EFalse; - loggerSettings.iAddTestCaseTitle = EFalse; - - // Create Logger, Note: Use protected NewL because initialization file not - // readed yet. - iLogger = CStifLogger::NewL( KUiLogDir, KUiLogFile, loggerSettings ); - - // Initialize logger - iUi->InitializeLogger( iLogger ); - - } - - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: NewL - - Description: Two-phased constructor. - - Parameters: None - - Return Values: CUIEngine* : Pointer to created UI engine object - - Errors/Exceptions: Leaves if memory allocation for CUIEngine fails - Leaves if ConstructL leaves - - Status: Draft - -------------------------------------------------------------------------------- -*/ -CUIEngine* CUIEngine::NewL( CUIIf* aUi ) - { - - CUIEngine* self = - new ( ELeave ) CUIEngine( aUi ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - - } - - - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: ~CUIEngine - - Description: Destructor - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -CUIEngine::~CUIEngine() - { - - __RDEBUG( _L( "CUIEngine::~CUIEngine()" ) ); - - // Delete all containers, cannot use ResetAndDestroy, - // because destructor is private - TInt count = iContainerArray.Count(); - for( TInt i=0; i< count; i++ ) - { - delete iContainerArray[i]; - } - iContainerArray.Reset(); - iContainerArray.Close(); - - delete iLogger; - iLogger = NULL; - - delete iError; - iError = 0; - - } - - -/* -------------------------------------------------------------------------------- - - Class: VUIEngine - - Method: Open - - Description: Open test engine. - - Parameters: TDesC& aTestFrameworkIni: in: Initialization file to Test Framework - - Return Values: Symbian OS error: Error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CUIEngine::Open( const TDesC& aTestFrameworkIni ) - { - - if( ( iTestEngine.SubSessionHandle() != 0 ) || - ( iTestEngineServ.Handle() != 0 ) ) - { - __TRACE( KError, ( CStifLogger::EError, _L( "CUIEngine::Open() Already open" ) ) ); - return KErrInUse; - } - - // Check aTestFrameworkIni max length - if( aTestFrameworkIni.Length() > KMaxFileName ) - { - __TRACE( KPrint, ( CStifLogger::EError, _L( "CUIEngine::Open() method's parameter length is incorrect" ) ) ); - return KErrArgument; - } - - // Create Test Engine - TInt ret = iTestEngineServ.Connect(); - - if ( ret != KErrNone ) - { - __TRACE( KPrint, ( _L( "CUIEngine::Open. Engine server open failed: ret = %d"), ret ) ); - - return ret; - } - - ret = iTestEngine.Open( iTestEngineServ, aTestFrameworkIni ); - - if ( ret != KErrNone ) - { - __TRACE( KPrint, ( _L( "CUIEngine::Open. Engine. Open failed: ret = %d"), ret ) ); - - return ret; - } - - TErrorNotification error; - if( ErrorPrint( error ) != KErrNotSupported ) - { - // Start printer - iError = CUIEngineErrorPrinter::NewL( this ); - iError->StartL( iTestEngine ); - } - - return ret; - } - - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: Close - - Description: Close test engine. - - Parameters: None - - Return Values: TInt KErrNone: Always returned KErrNone - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CUIEngine::Close() - { - - delete iError; - iError = 0; - - // Delete all containers, cannot use ResetAndDestroy, - // because destructor is private - TInt count = iContainerArray.Count(); - for( TInt i=0; i< count; i++ ) - { - delete iContainerArray[i]; - iContainerArray[i] = NULL; - } - iContainerArray.Reset(); - - iTestEngine.Close(); - iTestEngineServ.Close(); - - __TRACE( KPrint, ( _L( "CUIEngine::Close." ) ) ); - - return KErrNone; - } - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: AddTestModule - - Description: Add test module to module list of test engine - - Parameters: TDesC& aModuleName: in: Testmodule, which is added to module list - TDesC& aIniFile: in: Initialization file to the test module - - Return Values: Symbian OS error: Error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CUIEngine::AddTestModule( const TDesC& aModuleName, - const TDesC& aIniFile ) - { - // Check aModuleName max length - if( aModuleName.Length() > KMaxName ) - { - __TRACE( KPrint, ( CStifLogger::EError, _L( "CUIEngine::AddTestModule() method's first parameter length is incorrect" ) ) ); - return KErrArgument; - } - // Check aIniFile max length - if( aIniFile.Length() > KMaxFileName ) - { - __TRACE( KPrint, ( CStifLogger::EError, _L( "CUIEngine::AddTestModule() method's second parameter length is incorrect" ) ) ); - return KErrArgument; - } - - - TInt ret = iTestEngine.AddTestModule( aModuleName, aIniFile ); - - if ( ret != KErrNone && ret != KErrAlreadyExists ) - { - __TRACE( KPrint, ( _L( "CUIEngine::AddTestModule. Add module failed: ret = %d" ), ret ) ); - - return ret; - } - - return KErrNone; - - } - - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: RemoveTestModule - - Description: Remove test module from test engine - - Parameters: TDesC& aModuleName: in: Testmodule, which is removed of module list - - Return Values: Symbian OS error: Error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CUIEngine::RemoveTestModule( const TDesC& aModuleName ) - { - // Remove test module of module list of test engine - TInt ret = iTestEngine.RemoveTestModule( aModuleName ); - - if ( ret != KErrNone ) - { - __TRACE( KPrint, ( _L( "CUIEngine::RemoveTestModule. Remove module failed: ret = %d"), ret ) ); - - return ret; - } - - return ret; - } - - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: AddTestCaseFile - - Description: Add test case file to test case file list of test engine - - Parameters: TDesC& aModuleName: in: Testmodule, which own test cases of test case list. - TDesC& aCaseFile: in: Test case list, which is added to test case list - - Return Values: Symbian OS error: Error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CUIEngine::AddTestCaseFile( const TDesC& aModuleName, - const TDesC& aCaseFile ) - { - // Check aModuleName max length - if( aModuleName.Length() > KMaxName ) - { - __TRACE( KPrint, ( CStifLogger::EError, _L( "CUIEngine::AddTestCaseFile() method's first parameter length is incorrect" ) ) ); - return KErrArgument; - } - // Check aCaseFile max length - if( aCaseFile.Length() > KMaxFileName ) - { - __TRACE( KPrint, ( CStifLogger::EError, _L( "CUIEngine::AddTestCaseFile() method's second parameter length is incorrect" ) ) ); - return KErrArgument; - } - - TInt ret( KErrNone ); - - // Add given test case file to test module - if ( aCaseFile.Length() == 0 ) - { - ret = KErrArgument; - __TRACE( KPrint, ( _L( "CUIEngine::AddTestCaseFile. Test case file not defined: ret = %d"), ret ) ); - } - else - { - // Add test case file to test case file list of test engine - ret = iTestEngine.AddConfigFile( aModuleName, aCaseFile ); - - if ( ret != KErrNone && ret != KErrAlreadyExists ) - { - __TRACE( KPrint, ( _L( "CUIEngine::AddTestCaseFile. Add test case file failed: ret = %d"), ret ) ); - } - } - - return ret; - } - - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: RemoveTestCaseFile - - Description: Remove test case file of test case file list of test engine - - Parameters: TDesC& aModuleName: in: Testmodule, which own test cases of test case list - TDesC& aCaseFile: in: Test case list, which is removed of test case list - - Return Values: Symbian OS error: Error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CUIEngine::RemoveTestCaseFile( const TDesC& aModuleName, - const TDesC& aCaseFile ) - { - - TInt ret( KErrNone ); - - // Remove given test case file from test module - if ( aCaseFile.Length() == 0 ) - { - ret = KErrArgument; - __TRACE( KPrint, ( _L( "CUIEngine::RemoveTestCaseFile. Test case file not defined: ret = %d"), ret ) ); - } - else - { - // Remove test case file - ret = iTestEngine.RemoveConfigFile( aModuleName, aCaseFile ); - - if ( ret != KErrNone ) - { - __TRACE( KPrint, ( _L( "CUIEngine::RemoveTestCaseFile. Remove test case file failed: ret = %d"), ret ) ); - } - } - - return ret; - - } - - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: GetTestCases - - Description: Get test cases of enumerated list of test engine. Method is copied - list of test cases to aTestCaseInfo. Copied tests are test cases - of test module (aTestModule) and defined - in test case file (aTestCaseFile), which are given as argument - - Method copied all enumerated test cases if aTestModule - and aTestCaseFile are not defined - - Parameters: RPointerArray& aTestCaseInfo: inout: List of test cases - TDesC& aModuleName: in: Testmodule, which own test cases of test case list - TDesC& aTestCaseFile: in: Test case list, which is got of test case list - - Return Values: Symbian OS error: Error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CUIEngine::GetTestCasesL( RPointerArray& aTestCaseInfo, - const TDesC& aTestModule, - const TDesC& aTestCaseFile ) - { - __TRACE( KPrint, ( _L( "GetTestCasesL()") ) ); - - TInt ret(KErrNone); - TInt count(0); - - // Enumerate test cases - TCaseCount caseCount; - - TRequestStatus status; - iTestEngine.EnumerateTestCases( caseCount, status ); - User::WaitForRequest( status ); - ret = status.Int(); - - // Check that enumerate succeeded - if ( ret != KErrNone ) - { - __TRACE( KPrint, ( _L( "CUIEngine::GetTestCases. Test case enumerate failed: ret = %d"), ret ) ); - TErrorNotification error; - error.iText = _L("Can't get test cases"); - iUi->ErrorPrint ( error ); - return ret; - } - - CFixedFlatArray* testCases = NULL; - - // Create test cases to buffer - TRAPD( err, testCases = CFixedFlatArray::NewL( caseCount() ) ); - if( err != KErrNone ) - { - if( err == KErrNoMemory ) - { - _LIT( KNotEnoughHeapMemory, - "Not enough heap memory available. Either reduce the test case count or increase UI's heap size in mmp file using EPOCHEAPSIZE."); - RDebug::Print( KNotEnoughHeapMemory ); - __TRACE( KError, ( KNotEnoughHeapMemory ) ); - } - else - { - _LIT( KGeneralError, - "CUIEngine::GetTestCasesL: CFixedFlatArray::NewL fails with value: %d"); - RDebug::Print( KGeneralError, err ); - __TRACE( KError, ( KGeneralError, err ) ); - } - User::Leave( err ); - } - - CleanupStack::PushL( testCases ); - - // Get test cases from Engine. - ret = iTestEngine.GetTestCases( *testCases ); - - if ( ret != KErrNone ) - { - __TRACE( KPrint, ( _L( "CUIEngine::GetTestCases. Get test cases failed: ret = %d"), ret ) ); - - CleanupStack::PopAndDestroy( testCases ); - return ret; - } - - // count of test cases. - count = caseCount(); - - __TRACE( KPrint, ( _L( "Test case count: %d"), count ) ); - - HBufC* moduleNameBuf = aTestModule.AllocLC(); - TPtr moduleName( moduleNameBuf->Des() ); - TCollationMethod method = - *Mem::CollationMethodByIndex(0); // get the standard method - method.iFlags |= TCollationMethod::EFoldCase; // ignore case - - moduleName.LowerCase(); - - // Remove optional '.DLL' from test module file name - TParse parse; - parse.Set( moduleName, NULL, NULL ); - - if( !parse.Ext().CompareC( _L(".dll"), 3, &method ) ) - { - const TInt len = parse.Ext().Length(); - moduleName.Delete ( moduleName.Length()-len, len ); - } - - TBool found = EFalse; - // Update iTestCaseTable. - for (TInt j=0;j 0 ) - { - // Check, if test case defined. - if ( aTestCaseFile.Length() > 0) - { - if( moduleName == KTestScripterName ) - { - if( !( *testCases )[j].iConfig.CompareC( aTestCaseFile, 3, &method ) ) - { - found = ETrue; - } - } - if( !( *testCases )[j].iModuleName.CompareC( moduleName, 3, &method ) - && !( *testCases )[j].iConfig.CompareC( aTestCaseFile, 3, &method ) ) - { - found = ETrue; - } - } - else - { - if( moduleName == KTestScripterName ) - { - // Test Module is TestScripter - if( ( *testCases )[j].iModuleName.Find( KTestScripterName ) != KErrNotFound ) - { - // iModuleName name is in 'testscripter_testcasefile' - // format => Find() - found = ETrue; - } - } - if( !( *testCases )[j].iModuleName.CompareC( - moduleName, 3, &method ) ) - { - found = ETrue; - } - } - } - else - { - found = ETrue; - } - - if( found ) - { - // Create tmpTestInfo. - CTestInfo *tmpTestInfo = CTestInfo::NewL(); - - CleanupStack::PushL( tmpTestInfo ); - - // Copy TTestInfo to CTestInfo. - tmpTestInfo->SetModuleName( ( *testCases )[j].iModuleName ); - tmpTestInfo->SetTestCaseTitle( ( *testCases )[j].iTestCaseInfo.iTitle ); - tmpTestInfo->SetTestCaseNumber( ( *testCases )[j].iTestCaseInfo.iCaseNumber ); - tmpTestInfo->SetPriority( ( *testCases )[j].iTestCaseInfo.iPriority ); - tmpTestInfo->SetTimeout( ( *testCases )[j].iTestCaseInfo.iTimeout ); - tmpTestInfo->SetTestCaseFile( ( *testCases )[j].iConfig ); - ret = aTestCaseInfo.Append(tmpTestInfo); - if( ret != KErrNone ) - { - CleanupStack::PopAndDestroy( tmpTestInfo ); - } - else - { - CleanupStack::Pop( tmpTestInfo ); - } - } - } - - CleanupStack::PopAndDestroy( moduleNameBuf ); - - CleanupStack::PopAndDestroy( testCases ); - - return ret; - } - - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: StartTestCase - - Description: Start test case execution. - - Parameters: TInt& aTestId: in: ID for test case. Test ID given of address of - current UIEngineContainer. - - const CTestInfo& aTestInfo: in: Test case information - - Return Values: Symbian OS error: Error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CUIEngine::StartTestCase( CUIEngineContainer*& aContainer, - const CTestInfo& aTestInfo ) - { - TInt ret( KErrNone ); - - // Copy CTestInfo to TTestInfo. - TTestInfo testCase; - testCase.iModuleName = aTestInfo.ModuleName(); - testCase.iTestCaseInfo.iTitle = aTestInfo.TestCaseTitle(); - testCase.iTestCaseInfo.iCaseNumber = aTestInfo.TestCaseNum(); - testCase.iTestCaseInfo.iPriority = aTestInfo.Priority(); - testCase.iTestCaseInfo.iTimeout = aTestInfo.Timeout(); - testCase.iConfig = aTestInfo.TestCaseFile(); - - CUIEngineContainer* container = NULL; - TRAP( ret, - // Create container. - container = - CUIEngineContainer::NewL( this, testCase, iTestEngineServ, iTestEngine ); - ); - if( ret != KErrNone ) - { - return ret; - } - - ret = iContainerArray.Append( container ); - if( ret != KErrNone ) - { - __TRACE( KError, ( CStifLogger::EError, - _L( "CUIEngine::StartTestCase() Append failed, cannot start test case" ) ) ); - delete container; - return ret; - } - - // Call Container to starting test case execution. - TRAPD( trapError, - // Call Container to starting test case execution. - ret = container->StartContainerL(); - ); - - if(trapError != KErrNone) - { - __TRACE( KPrint, ( _L( "CUIEngine::StartTestCase. Test case starting failed: trapError = %d"), ret ) ); - delete container; - return trapError; - } - - aContainer = container; - - return ret; - - } - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: AbortStartedTestCase - - Description: Abort started test case execution. - - Parameters: CUIEngineContainer* aContainer: in: Container running testcase - - Return Values: Symbian OS error: Error code - - Errors/Exceptions: Panics if test case is not found or is already executed - - Status: Draft - -------------------------------------------------------------------------------- -*/ -void CUIEngine::AbortStartedTestCase( CUIEngineContainer* aContainer ) - { - - // Locate container from array - TInt index = iContainerArray.Find( aContainer ); - - if( ( index < 0) || - ( aContainer->State() == CUIEngineContainer::EExecuted ) ) - { - __TRACE( KError, ( CStifLogger::EError, - _L( "CUIEngine::AbortStartedTestCase() Testcase executed" ) ) ); - User::Panic( KUIEngine, KErrAccessDenied ); - } - - // Remove and delete container - iContainerArray.Remove( index ); - delete aContainer; - - } - - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: TestExecuted - - Description: - - Parameters: CUIEngineContainer* aUIEngineContainer: Address of current - CUIEngineContainer is test case ID. - - TFullTestResult& aFullTestResult: in: Test result of executed test case - - Return Values: TInt KErrNone: Always returned KErrNone - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -void CUIEngine::TestExecuted( CUIEngineContainer* aContainer, - TFullTestResult& aFullTestResult ) - { - // Locate container from array - TInt index = iContainerArray.Find( aContainer ); - - if( index < 0 ) - { - __TRACE( KError, ( CStifLogger::EError, - _L( "CUIEngine::TestExecuted() Testcase not found" ) ) ); - User::Panic( KUIEngine, KErrNotFound ); - } - - iUi->TestExecuted( aContainer, aFullTestResult ); - - // Remove and delete container. - // It is safe to do here, - // because container and runner does not have any code after - // this function returns. - iContainerArray.Remove( index ); - delete aContainer; - - } - - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: PrintProg - - Description: - - Parameters: CUIEngineContainer* aContainer: in: Address of current - CUIEngineContainer is test case ID - - TTestProgress& aProgress: in: Progress information from test case - - Return Values: SymbianOS error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CUIEngine::PrintProg( CUIEngineContainer* aContainer, - TTestProgress& aProgress ) - { - - return iUi->PrintProg( aContainer, aProgress ); - - } - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: ErrorPrint - - Description: - - Parameters: TErrorNotification& aError: in: Error information from framework - - Return Values: SymbianOS error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CUIEngine::ErrorPrint( TErrorNotification& aError ) - { - - return iUi->ErrorPrint( aError ); - - } - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: RemoteMsg - - Description: Forward Ats send. - - Parameters: const TDesC& aMessage: in: message - - Return Values: SymbianOS error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CUIEngine::RemoteMsg( CUIEngineContainer* aContainer, - const TDesC& aMessage ) - { - - return iUi->RemoteMsg( aContainer, aMessage ); - - } - -/* -------------------------------------------------------------------------------- - - Class: CUIEngine - - Method: GoingToReboot - - Description: Forward reboot indication. - - Parameters: None - - Return Values: SymbianOS error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CUIEngine::GoingToReboot( CUIEngineContainer* aContainer, - TRequestStatus& aStatus ) - { - - return iUi->GoingToReboot( aContainer, aStatus ); - - } - - -/* -------------------------------------------------------------------------------- - - DESCRIPTION - - CTestInfo: This object contains test case information. - -------------------------------------------------------------------------------- -*/ - -// ================= MEMBER FUNCTIONS ========================================= - - -/* -------------------------------------------------------------------------------- - - Class: CTestInfo - - Method: NewL - - Description: - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -EXPORT_C CTestInfo* CTestInfo::NewL() - { - - //RDebug::Print(_L("CTestInfo::NewL()")); - CTestInfo* self = - new ( ELeave ) CTestInfo(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - - } - -/* -------------------------------------------------------------------------------- - - Class: CTestInfo - - Method: CTestInfo - - Description: Default constructor - - C++ default constructor can NOT contain any code, that - might leave. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -CTestInfo::CTestInfo() - { - } - -/* -------------------------------------------------------------------------------- - - Class: CTestInfo - - Method: ConstructL - - Description: Symbian OS second phase constructor - - Symbian OS default constructor can leave. - - Parameters: None - - Return Values: None - - Errors/Exceptions: Leaves if called Open method returns error - - Status: Draft - -------------------------------------------------------------------------------- -*/ -void CTestInfo::ConstructL() - { - } - -/* -------------------------------------------------------------------------------- - - Class: CTestInfo - - Method: ~CTestInfo - - Description: Destructor - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -CTestInfo::~CTestInfo() - { - - delete iModuleNameBuf; - delete iTitleBuf; - delete iTestCaseFileBuf; - iModuleNameBuf = 0; - iTitleBuf = 0; - iTestCaseFileBuf = 0; - - } - -/* -------------------------------------------------------------------------------- - - Class: CTestInfo - - Method: SetModuleName - - Description: Set module name. - - Parameters: None - - Return Values: Symbian OS error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CTestInfo::SetModuleName ( const TDesC& aModuleName ) - { - - iModuleName.Set(0,0); - delete iModuleNameBuf; - - if( aModuleName.Length() < KTestScripterNameLength ) - { - iModuleNameBuf = aModuleName.Alloc(); - } - else - { - // Check is TestScripter - TPtrC check( aModuleName.Mid( 0, KTestScripterNameLength ) ); - TInt ret = check.Compare( KTestScripterName ); - if( ret == KErrNone ) - { - iModuleNameBuf = ( aModuleName.Mid( 0, KTestScripterNameLength ) ).Alloc(); - } - else - { - iModuleNameBuf = aModuleName.Alloc(); - } - } - - if( iModuleNameBuf == NULL ) - { - return KErrNoMemory; - } - - iModuleName.Set( iModuleNameBuf->Des() ); - - return KErrNone; - - } - -/* -------------------------------------------------------------------------------- - - Class: CTestInfo - - Method: SetTestCaseTitle - - Description: Set module name. - - Parameters: None - - Return Values: Symbian OS error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CTestInfo::SetTestCaseTitle ( const TDesC& aTitle ) - { - - iTitle.Set(0,0); - delete iTitleBuf; - iTitleBuf = aTitle.Alloc(); - if( iTitleBuf == NULL ) - { - return KErrNoMemory; - } - - iTitle.Set( iTitleBuf->Des() ); - - return KErrNone; - - }; - -/* -------------------------------------------------------------------------------- - - Class: CTestInfo - - Method: SetTestCaseFile - - Description: Set test case file name. - - Parameters: None - - Return Values: Symbian OS error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CTestInfo::SetTestCaseFile ( const TDesC& aTestCaseFile ) - { - iTestCaseFile.Set(0,0); - delete iTestCaseFileBuf; - iTestCaseFileBuf = aTestCaseFile.Alloc(); - if( iTestCaseFileBuf == NULL ) - { - return KErrNoMemory; - } - - iTestCaseFile.Set( iTestCaseFileBuf->Des() ); - - return KErrNone; - - }; - - -/* -------------------------------------------------------------------------------- - - Class: CTestInfo - - Method: CopyL - - Description: Copy existing CTestInfo. - - Parameters: None - - Return Values: None - - Errors/Exceptions: Leaves on error - - Status: Draft - -------------------------------------------------------------------------------- -*/ -void CTestInfo::CopyL( const CTestInfo& aTestInfo ) - { - - User::LeaveIfError( SetModuleName( aTestInfo.ModuleName() )); - User::LeaveIfError( SetTestCaseTitle( aTestInfo.TestCaseTitle() )); - User::LeaveIfError( SetTestCaseFile( aTestInfo.TestCaseFile() )); - - iCaseNumber = aTestInfo.TestCaseNum(); - iPriority = aTestInfo.Priority(); - iTimeout = aTestInfo.Timeout(); - iExpectedResult = aTestInfo.ExpectedResult(); - - } - -/* -------------------------------------------------------------------------------- - - Class: CTestInfo - - Method: SetTestCaseFile - - Description: Set test case file name. - - Parameters: None - - Return Values: Symbian OS error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TBool CTestInfo::operator== ( const CTestInfo& aTestInfo ) const - { - - if( ( aTestInfo.ModuleName() == ModuleName() ) && - ( aTestInfo.Priority() == Priority() ) && - ( aTestInfo.TestCaseFile() == TestCaseFile() ) && - ( aTestInfo.TestCaseNum() == TestCaseNum() ) && - ( aTestInfo.Timeout() == Timeout() ) ) - { - return ETrue; - } - - - return EFalse; - - } - -// ================= OTHER EXPORTED FUNCTIONS ================================= - -// End of File