diff -r 3406c99bc375 -r 07b41fa8d1dd stif/StifTFwIf/src/StifTFwIf.cpp --- a/stif/StifTFwIf/src/StifTFwIf.cpp Thu Jul 15 20:25:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1845 +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: CStifTFwIf: This object executes test cases from -* STIF Test Framework. -* -*/ - -// INCLUDE FILES -#include -#include -#include "UIEngineEvent.h" -#include -#include "StifTFwIf.h" -#include "StifTFw.h" -#include "Logging.h" -#include "StifPython.h" - -// EXTERNAL DATA STRUCTURES -// None - -// EXTERNAL FUNCTION PROTOTYPES -// None - -// CONSTANTS -// None - -// MACROS -#ifdef LOGGER -#undef LOGGER -#endif -#define LOGGER iStifTFw->iLogger - -// LOCAL CONSTANTS AND MACROS -// None - -// MODULE DATA STRUCTURES -// None - -// LOCAL FUNCTION PROTOTYPES -// None - -// FORWARD DECLARATIONS -// None - -// ==================== LOCAL FUNCTIONS ======================================= - -// ================= MEMBER FUNCTIONS ========================================= - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - Method: CStifTFwIf - - Description: Default constructor - - C++ default constructor can NOT contain any code, that - might leave. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -EXPORT_C CStifTFwIf::CStifTFwIf() - { - __RDEBUG( _L( "CStifTFwIf::CStifTFwIf()" ) ); - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - Method: ~CStifTFwIf - - Description: Destructor - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -EXPORT_C CStifTFwIf::~CStifTFwIf() - { - __RDEBUG( _L( "CStifTFwIf::~CStifTFwIf()" ) ); - } - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - 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 - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFwIf::Open( TDesC& aTestFrameworkIni ) - { - RDebug::Print(_L("CStifTFwIf::Open")); - TInt err( KErrNone ); - TRAP( err, - iStifTFw = CStifTFw::NewL( this ); - ) - - return iStifTFw->iUIEngine->Open( aTestFrameworkIni ); - - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - Method: Close - - Description: Close test engine. - - Parameters: None - - Return Values: TInt KErrNone: Always returned KErrNone - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFwIf::Close() - { - RDebug::Print(_L("CStifTFwIf::Close")); - - iStifTFw->DeleteData(); //Delete objects before closing session to TestEngine server - iStifTFw->iUIEngine->Close(); - - delete iStifTFw; - iStifTFw = 0; - - return KErrNone; - - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - Method: SetAttribute - - Description: Used to set attributes for Test Framework. - - Parameters: TAttribute aAttribute: in: Attribute type - TDesC& aValue: in: Attribute value - - Return Values: Symbian OS error: Error code - - Errors/Exceptions: None - - Status: Proposal - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFwIf::SetAttribute( TAttribute aAttribute, - const TDesC& aValue ) - { - RDebug::Print(_L("CStifTFwIf::SetAttribute")); - // Check aValue max length - if( aValue.Length() > KMaxName ) - { - __TRACE( KPrint, ( CStifLogger::EError, _L( "CStifTFwIf::SetAttribute() method's second parameter length is incorrect" ) ) ); - return KErrArgument; - } - - TInt ret = iStifTFw->iUIEngine->TestEngine().SetAttribute( aAttribute, aValue ); - - if ( ret != KErrNone ) - { - __TRACE( KPrint, ( _L( "CStifTFwIf::SetAttribute() method fails with error:%d" ), ret ) ); - return ret; - } - - return KErrNone; - - } - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - 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 - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFwIf::AddTestModule( TDesC& aModuleName, - TDesC& aIniFile ) - { - RDebug::Print(_L("CStifTFwIf::AddTestModule")); - - return iStifTFw->iUIEngine->AddTestModule( aModuleName, aIniFile ); - - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - Method: RemoveTestModule - - Description: Add test module to module list of 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 - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFwIf::RemoveTestModule( TDesC& aModuleName ) - { - RDebug::Print(_L("CStifTFwIf::RemoveTestModule")); - - return iStifTFw->iUIEngine->RemoveTestModule( aModuleName ); - - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - 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 - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFwIf::AddTestCaseFile( TDesC& aModuleName, TDesC& aCaseFile ) - { - RDebug::Print(_L("CStifTFwIf::AddTestCaseFile")); - - return iStifTFw->iUIEngine->AddTestCaseFile( aModuleName, aCaseFile ); - - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - 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 - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFwIf::RemoveTestCaseFile( TDesC& aModuleName, TDesC& aCaseFile ) - { - RDebug::Print(_L("CStifTFwIf::RemoveTestCaseFile")); - - return iStifTFw->iUIEngine->RemoveTestCaseFile( aModuleName, aCaseFile ); - - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - 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 - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFwIf::GetTestCases( RPointerArray& aTestCaseInfo, - TDesC& aTestModule, - TDesC& aTestCaseFile ) - { - RDebug::Print(_L("CStifTFwIf::GetTestCases")); - - TRAPD( ret, - ret = iStifTFw->iUIEngine->GetTestCasesL( aTestCaseInfo, - aTestModule, - aTestCaseFile ); - ); - - return ret; - - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - Method: StartTestCase - - Description: Start test case execution. - - Parameters: TInt& aTestId: in: ID for test case. Test ID given of address of - current CStifTFwIfContainer. - - const CTestInfo& aTestInfo: in: Test case information - - Return Values: Symbian OS error: Error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFwIf::StartTestCase( TInt& aTestId, - const CTestInfo& aTestInfo ) - { - RDebug::Print(_L("CStifTFwIf::StartTestCase")); - - CUIEngineContainer* container = NULL; - - TInt ret = iStifTFw->iUIEngine->StartTestCase( container, - aTestInfo ); - - if( ret != KErrNone ) - { - return ret; - } - - // Add container to test case execution table - ret = iStifTFw->iTestExecutionTable.Append( container ); - if( ret != KErrNone ) - { - iStifTFw->iUIEngine->AbortStartedTestCase( container ); - return ret; - } - - // Get test id. - aTestId = (TInt)container; - - __TRACE( KPrint, ( _L( "aTestId: %d"), aTestId ) ); - __TRACE( KPrint, ( _L( "aTest case: %S"), &(aTestInfo.TestCaseTitle()) ) ); - - return ret; - - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - Method: CancelTestCase - - Description: Cancel test case execution - - Parameters: TInt& aTestId: in: ID for test case - - Return Values: Symbian OS error: Error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFwIf::CancelTestCase( TInt aTestId ) - { - RDebug::Print(_L("CStifTFwIf::CancelTestCase")); - TInt ret(KErrNone); - - // Find test case from execution table - TInt index = iStifTFw->iTestExecutionTable.Find( ( CUIEngineContainer* )aTestId ); - - // Check if test id is found - if( index < 0) - { - __TRACE( KPrint, ( _L( "CStifTFwIf::CancelTestCase. Container not found. TestId = %d"), aTestId ) ); - - return index; - } - - // Cancel test - ret = iStifTFw->iTestExecutionTable[index]->CancelTest(); - __TRACE( KPrint, ( _L( "CStifTFwIf::CancelTestCase. Canceled testId %d"), aTestId ) ); - - return ret; - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - Method: PauseTestCase - - Description: Pause test case execution - - Parameters: TInt& aTestId: in: ID for test case - - Return Values: Symbian OS error: Error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFwIf::PauseTestCase( TInt aTestId ) - { - RDebug::Print(_L("CStifTFwIf::PauseTestCase")); - TInt ret(KErrNone); - - // Find test case from execution table - TInt index = iStifTFw->iTestExecutionTable.Find( ( CUIEngineContainer*) aTestId ); - - // Check if test id is found - if( index < 0 ) - { - __TRACE( KPrint, ( _L( "CStifTFwIf::PauseTestCase. Container not found: testId = %d"), aTestId ) ); - - return index; - } - - // Pause test - ret = iStifTFw->iTestExecutionTable[index]->PauseTest(); - - __TRACE( KPrint, ( _L( "CStifTFwIf::PauseTest. Paused testId %d"), aTestId ) ); - return ret; - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - Method: ResumeTestCase - - Description: Resume test case execution - - Parameters: TInt& aTestId: in: ID for test case - - Return Values: Symbian OS error: Error code - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFwIf::ResumeTestCase( TInt aTestId ) - { - RDebug::Print(_L("CStifTFwIf::ResumeTestCase")); - TInt ret(KErrNone); - - // Find test case from execution table - TInt index = iStifTFw->iTestExecutionTable.Find( ( CUIEngineContainer* ) aTestId ); - - // Check if test id is found - if( index < 0 ) - { - __TRACE( KPrint, ( _L( "CStifTFwIf::ResumeTestCase. Container not found: TestId = %d"), aTestId ) ); - - return index; - } - - // Resume test - ret = iStifTFw->iTestExecutionTable[index]->ResumeTest(); - - __TRACE( KPrint, ( _L( "CStifTFwIf::ResumeTestCase. Resumed testId %d"), aTestId ) ); - - return ret; - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - Method: AtsReceive - - Description: Handles remote protocol message receives - - Parameters: const TDesC& aMessage: in: Protocol message received - - Return Values: Symbian OS error code: In oom and is protocol message header - parsing fails, i.e. error in - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFwIf::AtsReceive( const TDesC& aMessage ) - { - RDebug::Print(_L("CStifTFwIf::AtsReceive")); - - CStifTFwIfProt* msg = NULL; - CStifTFwIfProt* resp = NULL; - TRAPD( err, msg = CStifTFwIfProt::NewL(); ); - if( err != KErrNone ) - { - return err; - } - TRAP( err, resp = CStifTFwIfProt::NewL(); ); - if( err != KErrNone ) - { - delete msg; - return err; - } - TInt error = KErrNone; - TInt ret = KErrNone; - - // Parse received message - TRAP( err, - error = msg->SetL( aMessage ) - ); - if( err != KErrNone ) - { - __TRACE( KError, ( _L( "AtsReceive: message header parsing failed [%d]"), err ) ); - delete msg; - delete resp; - return err; - } - - // Create response - TRAP( err, resp->CreateL(); ); - if( err != KErrNone ) - { - delete msg; - delete resp; - return err; - } - - resp->Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgResponse ); - - if( error != KErrNone ) - { - __TRACE( KError, ( _L( "AtsReceive: message parsing failed [%d]"), error ) ); - resp->AppendId( SETID( DevId(), 0 ) ); - resp->AppendId( msg->SrcId() ); - resp->Append( CStifTFwIfProt::MsgType, msg->iMsgType ); - resp->Append( CStifTFwIfProt::RespParam, CStifTFwIfProt::ERespResult, error ); - AtsSend( resp->Message() ); - - // Error reported with protocol message, return success - delete msg; - delete resp; - return KErrNone; - } - - switch( msg->iMsgType ) - { - case CStifTFwIfProt::EMsgReserve: - { - if( msg->iRemoteType != CStifTFwIfProt::ERemotePhone ) - { - __TRACE( KError, ( _L( "AtsReceive: reserve for illegal type received") ) ); - error = KErrGeneral; - } - // Check IDs - if( ( msg->SrcDevId() == 0 ) || - ( msg->SrcTestId() == 0 ) ) - { - __TRACE( KError, ( _L( "AtsReceive: reserve for illegal srcid received") ) ); - error = KErrGeneral; - } - if( msg->DstId() != 0 ) - { - // Not a broadcast - if( ( msg->DstDevId() != DevId() ) || - ( msg->DstTestId() != 0 ) ) - { - __TRACE( KError, ( _L( "AtsReceive: reserve for illegal dstid received") ) ); - error = KErrGeneral; - } - } - TInt index = iStifTFw->iMasterArray.Find( msg->SrcId() ); - if( index >= 0 ) - { - error = KErrInUse; - __TRACE( KError, ( _L( "AtsReceive: master has already reserved slave") ) ); - } - else - { - iStifTFw->iMasterArray.Append( msg->SrcId() ); - } - - resp->AppendId( SETID( DevId(), 0 ) ); - resp->AppendId( msg->SrcId() ); - resp->Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgReserve ); - if( error != KErrNone ) - { - resp->Append( CStifTFwIfProt::RespParam, CStifTFwIfProt::ERespResult, error ); - } - AtsSend( resp->Message() ); - - } - break; - case CStifTFwIfProt::EMsgRelease: - { - // Check protocol ids - if( ( msg->SrcDevId() == 0 ) || - ( msg->SrcTestId() == 0 ) || - ( msg->DstTestId() != 0 ) ) - { - __TRACE( KError, ( _L( "AtsReceive: release for illegal srcid or dstid received") ) ); - error = KErrGeneral; - } - else if( msg->DstDevId() != DevId() ) - { - __TRACE( KError, ( _L( "AtsReceive: release for illegal dstid received") ) ); - error = KErrNotFound; - } - else - { - // Check Master identifier - // First check that specific master has reserved us - TInt index = iStifTFw->iMasterArray.Find( msg->SrcId() ); - if( index < 0 ) - { - error = KErrNotFound; - } - else - { - // Search test case from execution table - TInt count = iStifTFw->iTestRemoteExecutionTable.Count(); - for( TInt ind = 0; ind < count; ind++ ) - { - if( iStifTFw->iTestRemoteExecutionTable[ind]->RemoteId() == - msg->SrcId() ) - { - __TRACE( KError, ( _L( "Release: test case running for %x"), - msg->SrcId() ) ); - error = KErrInUse; - break; - } - } - if( error == KErrNone ) - { - iStifTFw->iMasterArray.Remove( index ); - } - } - } - - resp->AppendId( msg->DstId() ); - resp->AppendId( msg->SrcId() ); - resp->Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgRelease ); - - if( error != KErrNone ) - { - resp->Append( CStifTFwIfProt::RespParam, CStifTFwIfProt::ERespResult, error ); - } - AtsSend( resp->Message() ); - } - break; - case CStifTFwIfProt::EMsgRemote: - { - // Check protocol ids - TInt index = iStifTFw->iMasterArray.Find( msg->SrcId() ); - if( ( msg->SrcDevId() == 0 ) || - ( msg->SrcTestId() == 0 ) || - ( msg->DstDevId() == 0 ) ) - { - __TRACE( KError, ( _L( "AtsReceive: remote for illegal srcid or dstid received") ) ); - error = KErrGeneral; - } - else if( index < 0 ) - { - __TRACE( KError, ( _L( "AtsReceive: remote for illegal srcid received") ) ); - error = KErrNotFound; - } - else - { - - __TRACE( KError, ( _L( "AtsReceive: Call AtsRemote") ) ); - RDebug::Print(_L("CStifTFwIf::AtsReceive remote command received, calling AtsRemote")); - error = iStifTFw->AtsRemote( *msg, *resp ); - RDebug::Print(_L("CStifTFwIf::AtsReceive remote command received, AtsRemote return")); - } - - if( error != KErrNone ) - { - resp->AppendId( msg->DstId() ); - resp->AppendId( msg->SrcId() ); - resp->Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgRemote ); - resp->Append( CStifTFwIfProt::CmdType, msg->iCmdType ); - resp->Append( CStifTFwIfProt::RespParam, - CStifTFwIfProt::ERespResult, - error ); - } - AtsSend( resp->Message() ); - } - break; - case CStifTFwIfProt::EMsgResponse: - { - // Responses ae forwarded to master - CUIEngineContainer* container = NULL; - TInt count = iStifTFw->iTestRemoteExecutionTable.Count(); - TInt index = 0; - for( index = 0 ; index < count; index++ ) - { - if( iStifTFw->iTestRemoteExecutionTable[index]->MasterId() == - msg->SrcId() ) - { - __TRACE( KError, ( _L( "Response for %x"), - msg->SrcId() ) ); - container = iStifTFw->iTestRemoteExecutionTable[index]; - break; - } - } - if( container == NULL ) - { - count = iStifTFw->iTestExecutionTable.Count(); - for( index = 0 ; index < count; index++ ) - { - if( iStifTFw->iTestExecutionTable[index]->MasterId() == - msg->DstId() ) - { - __TRACE( KError, ( _L( "Response for %x"), - msg->SrcId() ) ); - container = iStifTFw->iTestExecutionTable[index]; - break; - } - } - } - - if( container == NULL ) - { - __TRACE( KError, ( _L( "AtsReceive: response to srcid %x that is not a running master"), - msg->SrcId() ) ); - ret = KErrNotFound; - } - else - { - ret = container->RemoteReceive( aMessage ); - } - } - break; - default: - __TRACE( KError, ( _L( "AtsReceive: invalid message")) ); - ret = KErrNotSupported; - } - - delete msg; - delete resp; - return ret; - - } - -/* -------------------------------------------------------------------------------- - - DESCRIPTION - - CStifTFw: This object executes test cases from STIF Test Framework. - -------------------------------------------------------------------------------- -*/ - -// MACROS -#ifdef LOGGER -#undef LOGGER -#endif -#define LOGGER iLogger - -// ================= MEMBER FUNCTIONS ========================================= - -/* -------------------------------------------------------------------------------- - - Class: CStifTFw - - Method: NewL - - Description: Construct the CStifTFw class - - Parameters: None - - Return Values: CStifTFw* New object - - Errors/Exceptions: Leaves if memory allocation fails or - ConstructL leaves. - - Status: Draft - -------------------------------------------------------------------------------- -*/ -CStifTFw* CStifTFw::NewL( CStifTFwIf* aStifTFwIf ) - { - RDebug::Print(_L("CStifTFw::NewL")); - - CStifTFw* self = new ( ELeave ) CStifTFw( aStifTFwIf ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFw - - Method: ConstructL - - Description: Second level constructor. - - Parameters: None - - Return Values: None - - Errors/Exceptions: Leaves on error - - Status: Draft - -------------------------------------------------------------------------------- -*/ -void CStifTFw::ConstructL() - { - RDebug::Print(_L("CStifTFw::ConstructL")); - - iUIEngine = CUIEngine::NewL( (CUIIf*) this ); - - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFw - - Method: CStifTFw - - Description: Default constructor - - C++ default constructor can NOT contain any code, that - might leave. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -CStifTFw::CStifTFw( CStifTFwIf* aStifTFwIf ): - iStifTFwIf( aStifTFwIf ) - { - - __RDEBUG( _L( "CStifTFw::CStifTFw()" ) ); - - } - - -/* -------------------------------------------------------------------------------- - - Class: CStifTFwIf - - Method: ~CStifTFwIf - - Description: Destructor - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -CStifTFw::~CStifTFw() - { - __RDEBUG( _L( "CStifTFw::~CStifTFw() begin" ) ); - - RDebug::Print(_L("CStifTFw::~CStifTFw resetting iTestExecutionTable cnt=%d"), iTestExecutionTable.Count()); - iTestExecutionTable.Reset(); - RDebug::Print(_L("CStifTFw::~CStifTFw resetting iTestRemoteExecutionTable cnt=%d"), iTestRemoteExecutionTable.Count()); - iTestRemoteExecutionTable.Reset(); - RDebug::Print(_L("CStifTFw::~CStifTFw resetting iEventArray cnt=%d"), iEventArray.Count()); - iEventArray.ResetAndDestroy(); - RDebug::Print(_L("CStifTFw::~CStifTFw resetting iMasterArray cnt=%d"), iMasterArray.Count()); - iMasterArray.Reset(); - - RDebug::Print(_L("CStifTFw::~CStifTFw closing iTestExecutionTable cnt=%d"), iTestExecutionTable.Count()); - iTestExecutionTable.Close(); - RDebug::Print(_L("CStifTFw::~CStifTFw closing iTestRemoteExecutionTable cnt=%d"), iTestRemoteExecutionTable.Count()); - iTestRemoteExecutionTable.Close(); - RDebug::Print(_L("CStifTFw::~CStifTFw closing iEventArray cnt=%d"), iEventArray.Count()); - iEventArray.Close(); - RDebug::Print(_L("CStifTFw::~CStifTFw closing iMasterArray cnt=%d"), iMasterArray.Count()); - iMasterArray.Close(); - - //Moved from the beginning of destructor, because objects from some arrays during resetting and/or closing - //have tried to call methods of iUIEngine. - RDebug::Print(_L("CStifTFw::~CStifTFw deleteing iUiEngine address=%d"), iUIEngine); - delete iUIEngine; - - RDebug::Print(_L("CStifTFw::~CStifTFw end")); - } - -/* -------------------------------------------------------------------------------- - - Class: CStifTFw - - Method: AtsRemote - - Description: Remote ATS call - - Parameters: const TDesC& aMessage: in: - - Return Values: KErrNotSupported - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CStifTFw::AtsRemote( CStifTFwIfProt& aReq, CStifTFwIfProt& aResp ) - { - RDebug::Print(_L("CStifTFw::AtsRemote start, iCmdType=%d "), aReq.iCmdType); - - TInt ret = KErrNone; - - switch( aReq.iCmdType ) - { - case CStifTFwIfProt::ECmdRun: - { - RDebug::Print(_L("CStifTFw::AtsRemote iCmdType CStifTFwIfProt::ECmdRun ")); - ret = AtsRemoteRun( aReq, aResp ); - break; - } - case CStifTFwIfProt::ECmdPause: - case CStifTFwIfProt::ECmdResume: - case CStifTFwIfProt::ECmdCancel: - { - RDebug::Print(_L("CStifTFw::AtsRemote iCmdType CStifTFwIfProt::ECmdPause,Resume,Cancel ")); - ret = AtsRemoteTestCtl( aReq, aResp ); - break; - } - case CStifTFwIfProt::ECmdRequest: - case CStifTFwIfProt::ECmdRelease: - { - RDebug::Print(_L("CStifTFw::AtsRemote iCmdType CStifTFwIfProt::ECmdRequest,Release ")); - ret = AtsRemoteEventCtl( aReq, aResp ); - break; - } - case CStifTFwIfProt::ECmdSetEvent: - case CStifTFwIfProt::ECmdUnsetEvent: - { - RDebug::Print(_L("CStifTFw::AtsRemote iCmdType CStifTFwIfProt::ECmdSetEvent,Unset start ")); - ret = AtsRemoteEventCtl( aReq, aResp ); - RDebug::Print(_L("CStifTFw::AtsRemote iCmdType CStifTFwIfProt::ECmdSetEvent,Unset end ")); - break; - } - default: - { - RDebug::Print(_L("CStifTFw::AtsRemote iCmdType UNSUPPORTED value=%d "), aReq.iCmdType); - return KErrNotSupported; - } - } - - return ret; - } - -/* -------------------------------------------------------------------------------- - - Class: CStifTFw - - Method: GetCaseNumByTitle - - Description: Enumerates test cases from given module and finds test case index by title - - Parameters: TDesC& aModule: in: module name - TDesC& aTestCaseFile: in: cfg file - TDesC& aTitle: in: test case title - TInt& aCaseNum: in out: test case index - - Return Values: KErrNone if everything is ok - KErrNotFound if there is no such test case - - Errors/Exceptions: None. - - Status: Proposal - -------------------------------------------------------------------------------- -*/ -TInt CStifTFw::GetCaseNumByTitle(TDesC& aModule, TDesC& aTestCaseFile, TDesC& aTitle, TInt& aCaseNum) - { - RDebug::Print(_L("CStifTFw::GetCaseNumByTitle looking for test case number module=[%S] cfg=[%S] title=[%S]"), &aModule, &aTestCaseFile, &aTitle); - //Allocate table - RPointerArray allTestInfos; - CleanupClosePushL(allTestInfos); - TInt ret = KErrNone; - - //Enumerate test cases - RDebug::Print(_L("CStifTFw::GetCaseNumByTitle enumerating test cases")); - if(aTestCaseFile == _L("dummy.cfg")) - { - TName t = _L(""); - ret = iStifTFwIf->GetTestCases(allTestInfos, aModule, t); - } - else - { - ret = iStifTFwIf->GetTestCases(allTestInfos, aModule, aTestCaseFile); - } - - if(ret != KErrNone) - { - RDebug::Print(_L("Test cases enumeration from module [%S] and file [%S] has returned an error %d"), &aModule, &aTestCaseFile, ret); - } - else - { - //Searching through the table - RDebug::Print(_L("CStifTFw::GetCaseNumByTitle searching through the test cases table containing %d cases"), allTestInfos.Count()); - ret = KErrNotFound; - for(TInt i = 0; i < allTestInfos.Count(); i++) - { - if(allTestInfos[i]->TestCaseTitle() == aTitle) - { - aCaseNum = i; - //TestScripter relies on 1-based indexing - if((aModule.Find(KTestScripterName) != KErrNotFound) || (aModule.Find(KPythonScripter) != KErrNotFound) || (aModule.Find(KTestCombinerName) != KErrNotFound)) - aCaseNum++; - ret = KErrNone; - break; - } - } - } - if(ret == KErrNotFound) - { - RDebug::Print(_L("CStifTFw::GetCaseNumByTitle test case not found")); - } - else if(ret == KErrNone) - { - RDebug::Print(_L("CStifTFw::GetCaseNumByTitle test case number found: %d"), aCaseNum); - } - else - { - RDebug::Print(_L("CStifTFw::GetCaseNumByTitle error %d"), ret); - } - - //Some cleaning - allTestInfos.Reset(); - CleanupStack::PopAndDestroy(); - - return ret; - } - -/* - Class: CStifTFw - - Method: AtsRemoteRun - - Description: Remote run ATS call - - Parameters: const TDesC& aMessage: in: - - Return Values: KErrNotSupported - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CStifTFw::AtsRemoteRun( CStifTFwIfProt& aReq, CStifTFwIfProt& aResp ) - { - RDebug::Print(_L("CStifTFw::AtsRemoteRun start")); - - TInt ret = KErrNone; - TUint16 testid = 0; - - if( ( aReq.DstDevId() == 0 ) || - ( aReq.DstTestId() != 0 ) ) - { - RDebug::Print(_L("CStifTFw::AtsRemoteRun Protocol violation")); - // Protocol violation - __TRACE( KError, ( _L( "AtsReceive: remote run for illegal dstid received") ) ); - return KErrGeneral; - } - - if ( aReq.DstDevId() != iStifTFwIf->DevId() ) - { - RDebug::Print(_L("CStifTFw::AtsRemoteRun Not our protocol message")); - // Not our protocol message - __TRACE( KError, ( _L( "AtsReceive: remote run for illegal dstdevid received") ) ); - return KErrNotFound; - } - - - if( aReq.iModule.Length() == 0 ) - { - RDebug::Print(_L("CStifTFw::AtsRemoteRun No test module name given")); - __TRACE( KError, ( _L("No mandatory test module name given as run parameter") ) ); - ret = KErrNotFound; - } - else if(aReq.iTestCaseNumber < 0 && aReq.iTitle.Length() == 0) - { - RDebug::Print(_L("CStifTFw::AtsRemoteRun No test case number given")); - __TRACE( KError, ( _L("No mandatory test case number given as run parameter") ) ); - ret = KErrNotFound; - } - else - { - TBufC myTestscripter; - myTestscripter = KTestScripterName; - - if( ( aReq.iModule.Find( myTestscripter ) != KErrNotFound ) ) - { - RDebug::Print(_L("CStifTFw::AtsRemoteRun TestScripter module")); - // If testmodule's type is testscripter, then iModule has name - // "testscripter_testcasefile". AddTestModule method takes - // testscripter type of module without _testcasefile, so we cannot - // give iModule name as parameter. - - // Adding testscripter type of testmodule - RDebug::Print(_L("CStifTFw::AtsRemoteRun calling AddTestModule")); - ret = iStifTFwIf->AddTestModule( myTestscripter, aReq.iIniFile ); - if( ret != KErrNone ) - { - __TRACE( KError, ( _L( "CStifTFw::AtsRemoteRun: AddTestModule failed [%d]"), ret ) ); - - // It is ok if test module is already loaded to test engine - if( ret == KErrAlreadyExists ) - { - __TRACE( KPrint, ( _L( "Test module already exists at testengine, no problem") ) ); - } - } - // Adding testscripter testcasefile - RDebug::Print(_L("CStifTFw::AtsRemoteRun calling AddTestCaseFile")); - ret = iStifTFwIf->AddTestCaseFile( myTestscripter, aReq.iTestCaseFile ); - if( ret != KErrNone ) - { - // It is ok if test case file is already loaded to test engine - if( ret == KErrAlreadyExists ) - { - __TRACE( KPrint, ( _L( "Testcasefile already exists at testengine, no problem") ) ); - } - // Got other error, log info about it - else - { - __TRACE( KError, ( _L( "CStifTFw::AtsRemoteRun: AddTestCaseFile failed [%d]"), ret ) ); - __TRACE( KError, ( _L( "Testscripter needs to have test case file loaded successfully, please check path and file name!") ) ); - } - } - } - else - { - RDebug::Print(_L("CStifTFw::AtsRemoteRun It is not a TestScripter module ")); - // For testmodules other than testscripter - RDebug::Print(_L("CStifTFw::AtsRemoteRun calling AddTestModule ")); - ret = iStifTFwIf->AddTestModule( aReq.iModule, aReq.iIniFile ); - if( ret != KErrNone ) - { - __TRACE( KError, ( _L( "CStifTFw::AtsRemoteRun: AddTestModule failed [%d]"), ret ) ); - - // It is ok if test module is already loaded to test engine - if( ret == KErrAlreadyExists ) - { - __TRACE( KPrint, ( _L( "Test module already exists at testengine, no problem") ) ); - } - } - } - if(aReq.iTitle.Length() != 0) - { - aReq.iTestCaseNumber = -1; - //Get test case number from title - ret = GetCaseNumByTitle(aReq.iModule, aReq.iTestCaseFile, aReq.iTitle, aReq.iTestCaseNumber); - //Check test case number - if(aReq.iTestCaseNumber < 0) - { - RDebug::Print(_L("CStifTFw::AtsRemoteRun No test case number could be found using given title parameter")); - __TRACE(KError, (_L("No mandatory test case number could be found using given title parameter"))); - return KErrNotFound; - } - } - - CTestInfo *testCase = CTestInfo::NewL(); - CleanupStack::PushL( testCase ); - // Copy to CTestInfo. - - if( ( aReq.iModule.Find( KTestScripterName ) != KErrNotFound ) ) - { - testCase->SetModuleName( KTestScripterName ); - } - else - { - testCase->SetModuleName( aReq.iModule ); - } - testCase->SetTestCaseNumber( aReq.iTestCaseNumber ); - testCase->SetTestCaseFile( aReq.iTestCaseFile ); - - // Create container. - CUIEngineContainer* container = NULL; - - RDebug::Print(_L("CStifTFw::AtsRemoteRun calling StartTestCase ")); - ret = iUIEngine->StartTestCase( container, - *testCase ); - - CleanupStack::PopAndDestroy( testCase ); - - if( ret != KErrNone ) - { - RDebug::Print(_L("CStifTFw::AtsRemoteRun test case starting FAILED ")); - __TRACE( KError, ( _L( "Test case starting failed [%d]"), ret ) ); - } - else - { - RDebug::Print(_L("CStifTFw::AtsRemoteRun Add container")); - // Add container to test case execution table - container->SetRemoteId( aReq.SrcId() ); - testid = TESTID( (TInt)container ); - ret = iTestRemoteExecutionTable.Append( container ); - __TRACE( KError, ( _L( "Test case started [%x]"), testid ) ); - } - } - - aResp.AppendId( SETID( iStifTFwIf->DevId(), testid ) ); - aResp.AppendId( aReq.SrcId() ); - aResp.Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgRemote ); - aResp.Append( CStifTFwIfProt::CmdType, CStifTFwIfProt::ECmdRun ); - if( ret != KErrNone ) - { - aResp.Append( CStifTFwIfProt::RunStatus, - CStifTFwIfProt::ERunError ); - aResp.Append( CStifTFwIfProt::RunStatusParams, - CStifTFwIfProt::ERunResult, ret ); - } - else - { - aResp.Append( CStifTFwIfProt::RunStatus, - CStifTFwIfProt::ERunStarted ); - } - // Response is created, return success - ret = KErrNone; - - RDebug::Print(_L("CStifTFw::AtsRemoteRun end ")); - return ret; - - } - -/* -------------------------------------------------------------------------------- - - Class: CStifTFw - - Method: AtsRemoteTestCtl - - Description: Remote run ATS call - - Parameters: const TDesC& aMessage: in: - - Return Values: KErrNotSupported - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CStifTFw::AtsRemoteTestCtl( CStifTFwIfProt& aReq, CStifTFwIfProt& aResp ) - { - RDebug::Print(_L("CStifTFw::AtsRemoteTestCtl")); - - TInt ret = KErrNone; - - if( ( aReq.DstDevId() == 0 ) || - ( aReq.DstTestId() == 0 ) ) - { - // Protocol violation - __TRACE( KError, ( _L( "AtsReceive: remote test control for illegal dstid received") ) ); - return KErrGeneral; - } - - if ( aReq.DstDevId() != iStifTFwIf->DevId() ) - { - // Not our protocol message - __TRACE( KError, ( _L( "AtsReceive: remote test control for illegal dstdevid received") ) ); - return KErrNotFound; - } - - // Find test case from execution table - TInt count = iTestRemoteExecutionTable.Count(); - TInt index = 0; - for(; index < count; index++ ) - { - if( TESTID( iTestRemoteExecutionTable[index] ) == - aReq.DstTestId() ) - { - break; - } - } - - // Check that test id is found - if( index == count ) - { - __TRACE( KError, ( _L( "PauseTestCase. Container not found: testId: %x"), - aReq.DstTestId() ) ); - return KErrNotFound; - } - - switch( aReq.iCmdType ) - { - case CStifTFwIfProt::ECmdPause: - // Pause test - __TRACE( KPrint, ( _L( "PauseTest: %x"), aReq.DstTestId() ) ); - ret = iTestRemoteExecutionTable[index]->PauseTest(); - break; - case CStifTFwIfProt::ECmdResume: - // Resume test - __TRACE( KPrint, ( _L( "ResumeTestCase: %x"), aReq.DstTestId() ) ); - ret = iTestRemoteExecutionTable[index]->ResumeTest(); - break; - case CStifTFwIfProt::ECmdCancel: - // Cancel test - __TRACE( KPrint, ( _L( "CancelTestCase: %x"), aReq.DstTestId() ) ); - ret = iTestRemoteExecutionTable[index]->CancelTest(); - break; - default: - return KErrNotSupported; - } - if( ret == KErrNone ) - { - // Success response is created here - aResp.AppendId( aReq.DstId() ); - aResp.AppendId( aReq.SrcId() ); - aResp.Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgRemote ); - aResp.Append( CStifTFwIfProt::CmdType, aReq.iCmdType ); - } - - return ret; - - } - -/* -------------------------------------------------------------------------------- - - Class: CStifTFw - - Method: AtsRemoteEventCtl - - Description: Remote run ATS call - - Parameters: const TDesC& aMessage: in: - - Return Values: KErrNotSupported - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -TInt CStifTFw::AtsRemoteEventCtl( CStifTFwIfProt& aReq, - CStifTFwIfProt& aResp ) - { - RDebug::Print(_L("CStifTFw::AtsRemoteEventCtl start ")); - - if( ( aReq.DstDevId() == 0 ) || - ( aReq.DstTestId() != 0 ) ) - { - // Protocol violation - __TRACE( KError, ( _L( "AtsReceive: remote event control for illegal dstid received") ) ); - return KErrGeneral; - } - - if ( aReq.DstDevId() != iStifTFwIf->DevId() ) - { - // Not our protocol message - __TRACE( KError, ( _L( "AtsReceive: remote event control for illegal dstdevid received") ) ); - return KErrNotFound; - } - - if( aReq.iEventName.Length() == 0 ) - { - __TRACE( KError, ( _L("No event name given") ) ); - return KErrNotFound; - } - - switch( aReq.iCmdType ) - { - case CStifTFwIfProt::ECmdRequest: - { - RDebug::Print(_L("CStifTFw::AtsRemoteEventCtl ECmdRequest ")); - CUIEngineEvent* eventCtl = NULL; - TRAPD( err, eventCtl = CUIEngineEvent::NewL( iUIEngine ); ); - if( err != KErrNone ) - { - return err; - } - err = iEventArray.Append( eventCtl ); - if( err != KErrNone ) - { - delete eventCtl; - return err; - } - - eventCtl->Request( aReq.iEventName, aReq.SrcId(), - SETID( iStifTFwIf->DevId(), 0 ) ); - - aResp.AppendId( aReq.DstId() ); - aResp.AppendId( aReq.SrcId() ); - aResp.Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgRemote ); - aResp.Append( CStifTFwIfProt::CmdType, CStifTFwIfProt::ECmdRequest ); - aResp.Append( CStifTFwIfProt::EventStatus, - CStifTFwIfProt::EEventActive ); - aResp.Append( aReq.iEventName ); - - } - break; - case CStifTFwIfProt::ECmdRelease: - { - RDebug::Print(_L("CStifTFw::AtsRemoteEventCtl ECmdRelease ")); - TInt count = iEventArray.Count(); - TInt index = 0; - for(; index < count; index++ ) - { - if( ( iEventArray[index]->EventName() == aReq.iEventName ) && - ( iEventArray[index]->Master() == aReq.SrcId() ) ) - { - // Found correct event - CUIEngineEvent* eventCtl = iEventArray[index]; - eventCtl->Release(); - iEventArray.Remove(index); - delete eventCtl; - break; - } - } - if( index == count ) - { - return KErrNotFound; - } - - aResp.AppendId( aReq.DstId() ); - aResp.AppendId( aReq.SrcId() ); - aResp.Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgRemote ); - aResp.Append( CStifTFwIfProt::CmdType, CStifTFwIfProt::ECmdRelease ); - aResp.Append( aReq.iEventName ); - - } - break; - default: - RDebug::Print(_L("CStifTFw::AtsRemoteEventCtl NotSupported")); - return KErrNotSupported; - } - - return KErrNone; - - } - -/* -------------------------------------------------------------------------------- - - Class: CStifTFw - - Method: TestExecuted - - Description: - - Parameters: CUIEngineContainer* aContainer: 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 - -------------------------------------------------------------------------------- -*/ -EXPORT_C void CStifTFw::TestExecuted( CUIEngineContainer* aContainer, - TFullTestResult& aFullTestResult ) - { - RDebug::Print(_L("CStifTFw::TestExecuted")); - TInt testExecutionResult = aFullTestResult.iCaseExecutionResultCode; - TTestResult testResult = aFullTestResult.iTestResult; - - // Find Container from test execution table - TInt index = iTestExecutionTable.Find( aContainer ); - if( index >= 0 ) - { - // Remove Container from test case execution table - iTestExecutionTable.Remove( index ); - - iStifTFwIf->TestCompleted( (TInt)aContainer, testExecutionResult, testResult ); - __TRACE( KPrint, ( _L( "CStifTFw::TestExecuted. TestID %d executed"), (TInt)aContainer ) ); - } - else - { - // Find Container from test remote execution table - index = iTestRemoteExecutionTable.Find( aContainer ); - // Check if test id is found from remote tests - if( index >= 0 ) - { - // Remove Container from test case execution table - iTestRemoteExecutionTable.Remove( index ); - - CStifTFwIfProt* resp = NULL; - TRAPD( err, resp = CStifTFwIfProt::NewL() ); - if( err != KErrNone ) - { - // oom - return; - } - - // Create response - TRAP( err, resp->CreateL(); ); - if( err != KErrNone ) - { - delete resp; - // Oom - return; - } - resp->Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgResponse ); - resp->AppendId( SETID( iStifTFwIf->DevId(), TESTID( (TInt) aContainer ) ) ); - resp->AppendId( aContainer->RemoteId() ); - resp->Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgRemote ); - resp->Append( CStifTFwIfProt::CmdType, CStifTFwIfProt::ECmdRun ); - resp->Append( CStifTFwIfProt::RunStatus, - CStifTFwIfProt::ERunReady ); - if( testExecutionResult != KErrNone ) - { - resp->Append( CStifTFwIfProt::RunStatusParams, - CStifTFwIfProt::ERunResult, - testExecutionResult ); - switch( aFullTestResult.iCaseExecutionResultType ) - { - case TFullTestResult::ECasePanic: - resp->Append( CStifTFwIfProt::RunStatusParams, - CStifTFwIfProt::ERunCategory, - CStifTFwIfProt::ResultCategory, - CStifTFwIfProt::EResultPanic ); - break; - case TFullTestResult::ECaseTimeout: - resp->Append( CStifTFwIfProt::RunStatusParams, - CStifTFwIfProt::ERunCategory, - CStifTFwIfProt::ResultCategory, - CStifTFwIfProt::EResultTimeout ); - break; - case TFullTestResult::ECaseLeave: - resp->Append( CStifTFwIfProt::RunStatusParams, - CStifTFwIfProt::ERunCategory, - CStifTFwIfProt::ResultCategory, - CStifTFwIfProt::EResultLeave ); - break; - case TFullTestResult::ECaseException: - resp->Append( CStifTFwIfProt::RunStatusParams, - CStifTFwIfProt::ERunCategory, - CStifTFwIfProt::ResultCategory, - CStifTFwIfProt::EResultException ); - break; - default: - // The rest are normal execution results - break; - } - } - else - { - resp->Append( CStifTFwIfProt::RunStatusParams, - CStifTFwIfProt::ERunResult, - testResult.iResult ); - } - - iStifTFwIf->AtsSend( resp->Message() ); - __TRACE( KPrint, ( _L( "TestExecuted: %x"), TESTID(aContainer) ) ); - delete resp; - } - } - - if( index >= 0 ) - { - __TRACE( KPrint, ( _L( "Execution result %d"), testExecutionResult ) ); - __TRACE( KPrint, ( _L( "Test result(%S) %d"), &testResult.iResultDes, testResult.iResult ) ); - } - else - { - __TRACE( KPrint, ( _L( "CStifTFw::TestExecuted. Container not found: TestId = %d"), - (TInt)aContainer ) ); - User::Panic( _L("CStifTFw"), KErrNotFound ); - } - - } - -/* -------------------------------------------------------------------------------- - - Class: CStifTFw - - 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: TInt KErrNone: Always returned KErrNone - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFw::PrintProg( CUIEngineContainer* aContainer, - TTestProgress& aProgress ) - { - RDebug::Print(_L("CStifTFw::PrintProg")); - - if( aContainer == NULL ) - { - return KErrArgument; - } - if( ( aProgress.iDescription.Length() == 0 ) && - ( aProgress.iText.Length() == 0 ) ) - - { - return KErrArgument; - } - -//Stif-50 - the following code has been commented out to get messages on slave -// // Find Container from test execution table and remove it -// TInt index = iTestExecutionTable.Find(aContainer); -// -// // Check if test id is found -// if( index >= 0 ) -// { -// // Forward if found, prints are not forwarded from slave to master - iStifTFwIf->Print( (TInt)aContainer, aProgress ); -// } - - return KErrNone; - - } - -/* -------------------------------------------------------------------------------- - - Class: CStifTFw - - Method: RemoteMsg - - Description: - - Parameters: const TDesC& aMessage: in: Remote message - - Return Values: None - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFw::RemoteMsg( CUIEngineContainer* /*aContainer*/, - const TDesC& aMessage) - { - RDebug::Print(_L("CStifTFw::RemoteMsg")); - - if( aMessage.Length() == 0 ) - { - return KErrArgument; - } - // Forward message - iStifTFwIf->AtsSend( aMessage ); - - return KErrNone; - - } - -/* -------------------------------------------------------------------------------- - - Class: CStifTFw - - Method: RemoteMsg - - Description: - - Parameters: const TDesC& aMessage: in: Remote message - - Return Values: None - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt CStifTFw::GoingToReboot( CUIEngineContainer* /*aContainer*/, - TRequestStatus& aStatus ) - { - RDebug::Print(_L("CStifTFw::GoingToReboot")); - - aStatus = KRequestPending; - // Forward reboot indication - iStifTFwIf->GoingToDoReset(); - TRequestStatus* rs = &aStatus; - User::RequestComplete( rs, KErrNone ); - - return KErrNone; - - } - -/* -------------------------------------------------------------------------------- - - Class: CStifTFw - - Method: DeleteData - - Description: Delete arrays before closing session to test engine server - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Draft - -------------------------------------------------------------------------------- -*/ -void CStifTFw::DeleteData() - { - RDebug::Print(_L("CStifTFw::DeleteData resetting iTestExecutionTable cnt=%d"), iTestExecutionTable.Count()); - iTestExecutionTable.Reset(); - RDebug::Print(_L("CStifTFw::DeleteData resetting iTestRemoteExecutionTable cnt=%d"), iTestRemoteExecutionTable.Count()); - iTestRemoteExecutionTable.Reset(); - RDebug::Print(_L("CStifTFw::DeleteData resetting iEventArray cnt=%d"), iEventArray.Count()); - iEventArray.ResetAndDestroy(); - RDebug::Print(_L("CStifTFw::DeleteData resetting iMasterArray cnt=%d"), iMasterArray.Count()); - iMasterArray.Reset(); - } - -// End of File