stif/StifTFwIf/src/StifTFwIf.cpp
changeset 38 169364e7e4b4
parent 34 7259cf1302ad
child 45 185201be11b0
--- a/stif/StifTFwIf/src/StifTFwIf.cpp	Tue Jul 06 16:05:13 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 <e32base.h>
-#include <e32svr.h>
-#include "UIEngineEvent.h"
-#include <stifinternal/UIEngineContainer.h>
-#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<CTestInfo>& 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<CTestInfo>& 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 <msgtype> <srcid> <dstid>
-
-    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<CTestInfo> 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<KTestScripterNameLength> 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