diff -r 7259cf1302ad -r 169364e7e4b4 stif/TestScripter/src/TestScripterInternal.cpp --- a/stif/TestScripter/src/TestScripterInternal.cpp Tue Jul 06 16:05:13 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,390 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: This file contains TestScripterImp implementation. -* -*/ - -// INCLUDE FILES -#include -#include -#include "TestScripterInternal.h" -#include "TestScripter.h" -// EXTERNAL DATA STRUCTURES -//extern ?external_data; - -// EXTERNAL FUNCTION PROTOTYPES -//extern ?external_function( ?arg_type,?arg_type ); - -// CONSTANTS -//const ?type ?constant_var = ?constant; - -// MACROS -//#define ?macro ?macro_def - -// LOCAL CONSTANTS AND MACROS -//const ?type ?constant_var = ?constant; -//#define ?macro_name ?macro_def - -// MODULE DATA STRUCTURES -//enum ?declaration -//typedef ?declaration - -// LOCAL FUNCTION PROTOTYPES -//?type ?function_name( ?arg_type, ?arg_type ); - -// FORWARD DECLARATIONS -//class ?FORWARD_CLASSNAME; - -// ============================= LOCAL FUNCTIONS =============================== - -// None - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CScriptBase::CScriptBase -// Constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CScriptBase::CScriptBase( CTestModuleIf& aTestModuleIf ): - iTestModuleIf( aTestModuleIf ) - { - // Handles multible 'waittestclass' given in test configure file. - iSignalErrors.Reset(); - - } - - -// ----------------------------------------------------------------------------- -// CScriptBase::TestModuleIf -// Get reference to TestModuleIf API. -// ----------------------------------------------------------------------------- -// -EXPORT_C CTestModuleIf& CScriptBase::TestModuleIf() - { - - return iTestModuleIf; - - } - -// ----------------------------------------------------------------------------- -// CScriptBase::Signal -// Signal TestScripter to continue from waittestclass. -// ----------------------------------------------------------------------------- -// -EXPORT_C void CScriptBase::Signal( TInt aError ) - { - - if( iStatus ) - { - User::RequestComplete( iStatus, aError ); - } - else - { - // Handles multible 'waittestclass' given in test configure file. - // There is active object in CTestRunner also and it has higher - // priority than CTestContinue(It must be higher that e.g. - // 'allownextresult' is gotten right from configure file). That why we - // have to use this array and take signal "count" to the array for - // later handling. - iSignalErrors.Append( aError ); - } - - } - -// ----------------------------------------------------------------------------- -// CScriptBase::CallTestClass -// Called from test class. TestScripter forwards -// operations to other test class object. -// aLine: in: -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CScriptBase::CallTestClass( const TDesC& aLine ) - { - - if( iFunc ) - { - return iFunc( iTestScripter, EStifTSCallClass, aLine ); - } - - return KErrNotSupported; - - }; - -// ----------------------------------------------------------------------------- -// CScriptBase::GetTestObject -// Get test class object address. -// ----------------------------------------------------------------------------- -// -EXPORT_C CScriptBase* CScriptBase::GetTestObject( const TDesC& aObjectName ) - { - - if( iFunc ) - { - TInt ret = iFunc( iTestScripter, EStifTSGetObject, aObjectName ); - if( ret > 0 ) - { - return( CScriptBase* )ret; - } - } - - return NULL; - }; - -// ----------------------------------------------------------------------------- -// CScriptBase::EnableSignal -// Enable Signal(). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CScriptBase::EnableSignal( TRequestStatus& aStatus ) - { - - aStatus = KRequestPending; - iStatus = &aStatus; - - // Handles multible 'waittestclass' given in test configure file. - if( iSignalErrors.Count() > 0 ) - { - // Complete signal and remove it from array. - TInt error = iSignalErrors[0]; - iSignalErrors.Remove( 0 ); - User::RequestComplete( iStatus, error ); - } - - } - -// ----------------------------------------------------------------------------- -// CScriptBase::CancelSignal -// Cancel Signal(). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CScriptBase::CancelSignal() - { - if(iStatus!=NULL) - { - User::RequestComplete( iStatus, KErrCancel ); - } - } - -// ----------------------------------------------------------------------------- -// CScriptBase::SetScripter -// Set scripter callback. -// ----------------------------------------------------------------------------- -// -EXPORT_C void CScriptBase::SetScripter( CallBackFunc aFunc, CTestScripter* aTestScripter ) - { - - iTestScripter = aTestScripter; - iFunc = aFunc; - - } - -// ----------------------------------------------------------------------------- -// CScriptBase::RunInternalL -// Run specified method from test class. -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CScriptBase::RunInternalL ( - TStifFunctionInfo const aFunctions[], - TInt aCount, - CStifItemParser& aItem ) - { - - TInt ret = KErrNotFound; - - TPtrC command; - User::LeaveIfError ( aItem.GetNextString( command ) ); - TInt i = 0; - TName funcName; - - // Search function from table and call it - for ( i = 0; i < aCount; i++ ) - { - funcName = aFunctions[i].iFunctionName; - if ( command == funcName ) - { - if( iLog ) - { - iLog->Log(_L("Calling [%S]"), &command ); - } - ret = ( this->*(aFunctions[i].iMethod) )( aItem ); - - break; - } - - } - - if( i == aCount ) - { - iLog->Log( _L("[%S] not found"), &command ); - } - - return ret; - - } - -// ----------------------------------------------------------------------------- -// CScriptBase::GetConstantValue -// Internal fuction to get const value defined in -// [Define]...[Enddefine] section of script file -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CScriptBase::GetConstantValue( const TDesC& aName, TDes& aValue ) - { - return iTestScripter->GetConstantValue( aName, aValue ); - } - - -// ----------------------------------------------------------------------------- -// CScriptBase::GetConstantValue -// Internal fuction to get const value defined in -// [Define]...[Enddefine] section of script file -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CScriptBase::GetConstantValue( const TDesC& aName, TInt& aValue ) - { - TInt ret = KErrNone; - TBuf<32> valStr; - ret = iTestScripter->GetConstantValue( aName, valStr ); - if ( ret != KErrNone ) - { - return ret; - } - - TLex converter( valStr ); - ret = converter.Val( aValue ); - - return ret; - } - -// ----------------------------------------------------------------------------- -// CScriptBase::GetConstantValue -// Internal fuction to get const value defined in -// [Define]...[Enddefine] section of script file -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CScriptBase::GetConstantValue( const TDesC& aName, TReal& aValue ) - { - TInt ret = KErrNone; - TBuf<32> valStr; - ret = iTestScripter->GetConstantValue( aName, valStr ); - if ( ret != KErrNone ) - { - return ret; - } - - TLex converter( valStr ); - ret = converter.Val( aValue ); - - return ret; - } - -// ----------------------------------------------------------------------------- -// CScriptBase::SetResultDescription -// Result description can be set from within the test class method -// ----------------------------------------------------------------------------- -// -EXPORT_C void CScriptBase::SetResultDescription(const TDesC& aDescription) - { - iTestScripter->SetResultDescription(aDescription); - } - -// ----------------------------------------------------------------------------- -// CScriptBase::SetLocalValue -// Internal fuction to set local value -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CScriptBase::SetLocalValue(const TDesC& aName, const TDesC& aValue) - { - return iTestScripter->SetLocalValue(aName, aValue); - } - -// ----------------------------------------------------------------------------- -// CScriptBase::SetLocalValue -// Internal fuction to set local value -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CScriptBase::SetLocalValue(const TDesC& aName, const TInt aValue) - { - TBuf<20> buf; - buf.Format(_L("%d"), aValue); - return iTestScripter->SetLocalValue(aName, buf); - } - -// ----------------------------------------------------------------------------- -// CScriptBase::SetLocalValue -// Internal fuction to set local value -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CScriptBase::SetLocalValue(const TDesC& aName, const TReal aValue ) - { - TBuf<50> buf; - buf.Format(_L("%g"), aValue); - return iTestScripter->SetLocalValue(aName, buf); - } - -// ----------------------------------------------------------------------------- -// CScriptBase::GetLocalValue -// Internal fuction to get local value -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CScriptBase::GetLocalValue(const TDesC& aName, TDes& aValue) - { - return iTestScripter->GetLocalValue(aName, aValue); - } - -// ----------------------------------------------------------------------------- -// CScriptBase::GetLocalValue -// Internal fuction to get local value -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CScriptBase::GetLocalValue(const TDesC& aName, TInt& aValue) - { - TInt ret = KErrNone; - TBuf<50> valStr; - ret = iTestScripter->GetLocalValue(aName, valStr); - if(ret != KErrNone) - { - return ret; - } - - TLex converter(valStr); - ret = converter.Val(aValue); - - return ret; - } - -// ----------------------------------------------------------------------------- -// CScriptBase::GetLocalValue -// Internal fuction to get local value -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CScriptBase::GetLocalValue(const TDesC& aName, TReal& aValue ) - { - TInt ret = KErrNone; - TBuf<50> valStr; - ret = iTestScripter->GetLocalValue(aName, valStr); - if(ret != KErrNone) - { - return ret; - } - - TLex converter(valStr); - ret = converter.Val(aValue); - - return ret; - } - -// End of File