diff -r 7259cf1302ad -r 169364e7e4b4 stif/TestEngine/src/TestEngineClient.cpp --- a/stif/TestEngine/src/TestEngineClient.cpp Tue Jul 06 16:05:13 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,852 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: This module contains implementation of -* RTestEngineServer class member functions. -* -*/ - -// INCLUDE FILES -#include -#include "TestEngineClient.h" -#include "TestEngineCommon.h" - -// EXTERNAL DATA STRUCTURES -// None - -// EXTERNAL FUNCTION PROTOTYPES -// None - -// CONSTANTS -// None - -// MACROS -// None - -// LOCAL CONSTANTS AND MACROS -// None - -// MODULE DATA STRUCTURES -// None - -// LOCAL FUNCTION PROTOTYPES -// None - -// FORWARD DECLARATIONS -// None - -// ==================== LOCAL FUNCTIONS ======================================= -// None - -// ================= MEMBER FUNCTIONS ========================================= - -/* -------------------------------------------------------------------------------- - - Class: RTestEngineServer - - Method: Connect - - Description: Connect method creates new RTestEngineServer session. - - RTestEngineServer session is used to manage the test case execution. - - Parameters: None - - Return Values: TInt KErrNone : TestEngineServer created successfully - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestEngineServer::Connect() - { - TInt ret = StartEngine(); - if ( ret == KErrNone) - { - ret = CreateSession( KTestEngineName, Version() ); - } - return ret; - - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngineServer - - Method: Version - - Description: Return client side version number from RTestEngineServer. - - Parameters: None - - Return Values: TVersion : Version number from RTestEngineServer - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TVersion RTestEngineServer::Version() const - { - return ( TVersion( KTestEngineMajorVersionNumber, - KTestEngineMinorVersionNumber, KTestEngineBuildVersionNumber ) ); - - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngineServer - - Method: Close - - Description: Closes the RTestEngineServer session. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C void RTestEngineServer::Close() - { - // Check that server is connected - if ( Handle() != 0 ) - { - TIpcArgs args( TIpcArgs::ENothing, TIpcArgs::ENothing, TIpcArgs::ENothing ); - SendReceive( ETestEngineServerCloseSession, args ); - } - RSessionBase::Close(); - - } - -/* -------------------------------------------------------------------------------- - - DESCRIPTION - - This module contains implementation of RTestEngine class member functions. - -------------------------------------------------------------------------------- -*/ - -// ================= MEMBER FUNCTIONS ========================================= - -/* -------------------------------------------------------------------------------- - - Class: RTestEngine - - Method: Open - - Description: Open creates a subsession to TestEngine. - - Parameters: RTestEngineServer& aServer : Handle to Test Engine Server - const TFileName& aIniFile : Ini file to be used for - initialization of the Test Engine - - Return Values: TInt: Symbian OS error code - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestEngine::Open( RTestEngineServer& aServer, - const TFileName& aIniFile ) - { - TIpcArgs args( &aIniFile, TIpcArgs::ENothing, TIpcArgs::ENothing ); - return CreateSubSession( aServer, ETestEngineCreateSubSession, args ); - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngine - - Method: Close - - Description: Close the RTestEngine subsession. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C void RTestEngine::Close() - { - RSubSessionBase::CloseSubSession( ETestEngineCloseSubSession ); - - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngine - - Method: SetAttribute - - Description: Sets attributes to Test Framework - - Parameters: TAttribute aAttribute: in: Attribute type - const TDesC& aValue: in: Attribute value - - Return Values: TInt: Symbian OS error code - - Errors/Exceptions: None - - Status: Proposal - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestEngine::SetAttribute( TAttribute aAttribute, - const TDesC& aValue ) - { - TIpcArgs args( aAttribute, &aValue, TIpcArgs::ENothing ); - return SendReceive( ETestEngineSetAttribute, args ); - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngine - - Method: AddTestModule - - Description: Load dynamically a new Test Module to the Test Framework. - - Parameters: const TName& aTestModule : Name of the Test Module to be added - const TFileName& aIniFile : Initialization file of Test Module - - Return Values: TInt: Symbian OS error code - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestEngine::AddTestModule( const TName& aTestModule, - const TFileName& aIniFile ) - { - TIpcArgs args( &aTestModule, &aIniFile, TIpcArgs::ENothing ); - return SendReceive( ETestEngineAddTestModule, args ); - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngine - - Method: RemoveTestModule - - Description: Remove the existing Test Module from the Test Framework. - - Parameters: const TName& aTestModule : Name of the Test Module to be - removed - - Return Values: TInt: Symbian OS error code - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestEngine::RemoveTestModule( const TName& aTestModule ) - { - TIpcArgs args( &aTestModule, TIpcArgs::ENothing, TIpcArgs::ENothing ); - return SendReceive( ETestEngineRemoveTestModule, args ); - - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngine - - Method: AddConfigFile - - Description: Add new config file to Test Module. - - Parameters: const TName& aTestModule : Name of Test Module where the config - file will be added - const TFileName& aConfigFile : Name of config file to be added - - Return Values: TInt: Symbian OS error code - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestEngine::AddConfigFile( const TName& aTestModule, - const TFileName& aConfigFile ) - { - TIpcArgs args( &aTestModule, &aConfigFile, TIpcArgs::ENothing ); - return SendReceive( ETestEngineAddConfigFile, args ); - - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngine - - Method: RemoveConfigFile - - Description: Remove config file from Test Module. - - Parameters: const TName& aTestModule : Test Module name - const TFileName& aConfigFile : Name of config file to be removed - - Return Values: TInt: Symbian OS error code - - Errors/Exceptions: None - - Status: Proposal - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestEngine::RemoveConfigFile( const TName& aTestModule, - const TFileName& aConfigFile ) - { - TIpcArgs args( &aTestModule, &aConfigFile, TIpcArgs::ENothing ); - return SendReceive( ETestEngineRemoveConfigFile, args ); - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngine - - Method: EnumerateTestCases - - Description: First phase of two-phased test case query operation. - - Test cases are inquired by two-phased operation calling first the - EnumerateTestCases method and then the GetTestCases. - - Parameters: TInt& aCount : Test case count - TRequestStatus& aStatus : Request status - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C void RTestEngine::EnumerateTestCases( TCaseCount& aCount, - TRequestStatus& aStatus ) - { - TIpcArgs args( &aCount, TIpcArgs::ENothing, TIpcArgs::ENothing ); - SendReceive( ETestEngineEnumerateTestCases, args, aStatus ); - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngine - - Method: GetTestCases - - Description: Second phase of two-phased test case query operation. - - GetTestCases retrieves test cases from Test Modules to aTestCases that is - a list consisting of several TTestInfo objects. - - Parameters: CArrayFixFlat& aTestCaseBuffer : Test case array - - Return Values: TInt: Symbian OS error code - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestEngine::GetTestCases( - CFixedFlatArray& aTestCaseBuffer ) - { - // Construct and send message - TIpcArgs args( &aTestCaseBuffer.Des(), TIpcArgs::ENothing, TIpcArgs::ENothing ); - return SendReceive( ETestEngineGetTestCases, args ); - - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngine - - Method: ErrorNotification - - Description: Obtains error notifications from Test Engine and Test - Servers via Test Engine. - - Parameters: TTestProgressPckg& aError : Error package - TRequestStatus& aStatus : Request status - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C void RTestEngine::ErrorNotification( TErrorNotificationPckg& aError, - TRequestStatus& aStatus ) - { - TIpcArgs args( &aError, TIpcArgs::ENothing, TIpcArgs::ENothing ); - SendReceive( ETestEngineErrorNotification, args, aStatus ); - - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngine - - Method: CancelAsyncRequest - - Description: Asynchronous requests can be canceled by this function. - - Parameters: TInt aReqToCancel : Request to be cancelled - - Return Values: TInt: Symbian OS error code - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestEngine::CancelAsyncRequest( TInt aReqToCancel ) - { - TIpcArgs args( aReqToCancel, TIpcArgs::ENothing, TIpcArgs::ENothing ); - return SendReceive( ETestEngineCancelAsyncRequest, args ); - - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngine - - Method: Event - - Description: Used to control STIF Test Framework event system. - - Parameters: TEventIfPckg& aEvent : in : Event information - TRequestStatus& aStatus : in : Request status - - Return Values: TInt KErrNone : No errors occurred - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C void RTestEngine::Event( TEventIfPckg& aEvent, - TRequestStatus& aStatus ) - { - TIpcArgs args( &aEvent, TIpcArgs::ENothing, TIpcArgs::ENothing ); - SendReceive( ETestEngineEvent, args, aStatus ); - - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngine - - Method: OpenLoggerSession - - Description: Open created subsession to TestEngine. - - Parameters: RTestEngineServer& aServer : Handle to Test Engine Server - TLoggerSettings& aLoggerSettings: in: Logger's overwrite struct - - Return Values: TInt KErrNone: TestEngine opened and initialized - succesfully - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestEngine::OpenLoggerSession( RTestEngineServer& aServer, - TLoggerSettings& aLoggerSettings ) - { - // Package - TPckg loggerSettingsPckg( aLoggerSettings ); - - TIpcArgs args( &loggerSettingsPckg, TIpcArgs::ENothing, TIpcArgs::ENothing ); - // Goes to CTestEngine's DispatchMessageL() method - CreateSubSession( aServer, ETestEngineLoggerSettings, args ); - RSubSessionBase::CloseSubSession( ETestEngineCloseLoggerSettings ); - - return KErrNone; - - } - -/* -------------------------------------------------------------------------------- - - Class: RTestEngine - - Method: AddTestCaseResultToTestReport - - Description: Sends info about executed test cases to test engine, which - will forward it to test report. - This is used when after reboot UIStore reads info about - executed test cases before reboot. - - Parameters: TTestIngo& aTestInfo : test info structure - TFullTestResult& aTestResult: test result structure - TInt aError: error - - Return Values: TInt error code returned by test engine - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestEngine::AddTestCaseResultToTestReport(const TTestInfo& aTestInfo, - const TFullTestResult& aTestResult, - const TInt aError) - { - // Create packages - TTestInfoPckg testInfoPckg(aTestInfo); - TFullTestResultPckg fullTestResultPckg(aTestResult); - - // Create argument list - TIpcArgs args(&testInfoPckg, &fullTestResultPckg, aError); - - // Send it to test engine - TInt res = SendReceive(ETestEngineReportTestCase, args); - - return res; - } - -/* -------------------------------------------------------------------------------- - - DESCRIPTION - - This module contains implementation of RTestCase class member functions. - -------------------------------------------------------------------------------- -*/ - -// ================= MEMBER FUNCTIONS ========================================= - -/* -------------------------------------------------------------------------------- - - Class: RTestCase - - Method: Open - - Description: Open creates a subsession to TestCase. - - Parameters: RTestEngineServer& aServer : Handle to Test Engine Server - const TTestInfoPckg& aTestCaseInfo : TTestInfoPckg : Test info - package - - Return Values: TInt: Symbian OS error code - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestCase::Open( RTestEngineServer& aServer, - const TTestInfoPckg& aTestCaseInfo ) - { - TIpcArgs args( &aTestCaseInfo, TIpcArgs::ENothing, TIpcArgs::ENothing ); - return CreateSubSession( aServer, ETestCaseCreateSubSession, args ); - } - -/* -------------------------------------------------------------------------------- - - Class: RTestCase - - Method: Close - - Description: Close the RTestCase subsession. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C void RTestCase::Close() - { - RSubSessionBase::CloseSubSession( ETestCaseCloseSubSession ); - - } - -/* -------------------------------------------------------------------------------- - - Class: RTestCase - - Method: RunTestCase - - Description: Run a test case asynchronously. - - Parameters: TFullTestResultPckg& aTestResult : TFullTestResult : - Test Result package - TRequestStatus& aStatus : Request status - - Return Values: TInt KErrNone : Test case could be run - Other error code : Reason the test case couldn't be run - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C void RTestCase::RunTestCase( TFullTestResultPckg& aTestResult, - TRequestStatus& aStatus ) - { - TIpcArgs args( &aTestResult, TIpcArgs::ENothing, TIpcArgs::ENothing ); - SendReceive( ETestCaseRunTestCase, args, aStatus ); - } - -/* -------------------------------------------------------------------------------- - - Class: RTestCase - - Method: RunTestCase - - Description: Run a test case asynchronously. - - Parameters: TFullTestResultPckg& aTestResult : TFullTestResult : - Test Result package - const TDesC& aTestCaseArgs: Test case arguments - TRequestStatus& aStatus : Request status - - Return Values: TInt KErrNone : Test case could be run - Other error code : Reason the test case couldn't be run - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C void RTestCase::RunTestCase( TFullTestResultPckg& aTestResult, - const TDesC& aTestCaseArgs, - TRequestStatus& aStatus ) - { - TIpcArgs args( &aTestResult, &aTestCaseArgs, TIpcArgs::ENothing ); - SendReceive( ETestCaseRunTestCase, args, aStatus ); - } - -/* -------------------------------------------------------------------------------- - - Class: RTestCase - - Method: Pause - - Description: Pause suspends the execution of the test case. - - Parameters: None - - Return Values: TInt: Symbian OS error code - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestCase::Pause() - { - TIpcArgs args( TIpcArgs::ENothing, TIpcArgs::ENothing, TIpcArgs::ENothing ); - return SendReceive( ETestCasePause, args ); - } - -/* -------------------------------------------------------------------------------- - - Class: RTestCase - - Method: Resume - - Description: Resume the test case suspended previously. - - Parameters: None - - Return Values: TInt: Symbian OS error code - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestCase::Resume() - { - TIpcArgs args( TIpcArgs::ENothing, TIpcArgs::ENothing, TIpcArgs::ENothing ); - return SendReceive( ETestCaseResume, args ); - } - -/* -------------------------------------------------------------------------------- - - Class: RTestCase - - Method: NotifyProgress - - Description: Request different progress information from the test case. - - Parameters: TTestProgressPckg& aProgress : TTestProgress : Test Progress - package - TRequestStatus& aStatus : Request status - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C void RTestCase::NotifyProgress( TTestProgressPckg& aProgress, - TRequestStatus& aStatus ) - { - TIpcArgs args( &aProgress, TIpcArgs::ENothing, TIpcArgs::ENothing ); - SendReceive( ETestCaseNotifyProgress, args, aStatus ); - } - -/* -------------------------------------------------------------------------------- - - Class: RTestCase - - Method: NotifyRemoteType - - Description: Request remote commands information from the test case. - - Parameters: TRemoteCommandPckg& aType: in: Request type - TRequestStatus& aStatus : Request status - - Return Values: None - - Errors/Exceptions: None - - Status: Proposal - -------------------------------------------------------------------------------- -*/ -EXPORT_C void RTestCase::NotifyRemoteType( TStifCommandPckg& aType, - TPckg& aMsgSize, - TRequestStatus& aStatus ) - { - TIpcArgs args( &aType, &aMsgSize, TIpcArgs::ENothing ); - SendReceive( ETestCaseNotifyRemoteType, args, aStatus ); - } - -/* -------------------------------------------------------------------------------- - - Class: RTestCase - - Method: NotifyRemoteMsg - - Description: Request remote commands information from the test case. - - Parameters: TDesC& aMessage: in: Message buffer - TRemoteCmdType aType: in: Message direction - - Return Values: None - - Errors/Exceptions: None - - Status: Proposal - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestCase::NotifyRemoteMsg( TDes8& aMessage, - TStifCommand aType ) - { - TIpcArgs args( &aMessage, aType, aMessage.Length() ); - return SendReceive( ETestCaseNotifyRemoteMsg, args ); - } - -/* -------------------------------------------------------------------------------- - - Class: RTestCase - - Method: CancelAsyncRequest - - Description: Asynchronous requests can be canceled by this function. - - Parameters: TInt aReqToCancel : Request to be cancelled - - Return Values: TInt: Symbian OS error code - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt RTestCase::CancelAsyncRequest( TInt aReqToCancel ) - { - TIpcArgs args( aReqToCancel, TIpcArgs::ENothing, TIpcArgs::ENothing ); - return SendReceive( ETestCaseCancelAsyncRequest, args ); - } - -// ================= OTHER EXPORTED FUNCTIONS ================================= - -// None - -// End of File