# HG changeset patch # User hgs # Date 1276504653 -10800 # Node ID 9aaae25af322bea555c296d245c12cb1b0a19509 # Parent f5d4820de50d5358eb2905a5e395c319d9c24f74 201023 diff -r f5d4820de50d -r 9aaae25af322 hti/HtiServicePlugins/HtiFtpServicePlugin/src/HtiFtpServicePlugin.cpp --- a/hti/HtiServicePlugins/HtiFtpServicePlugin/src/HtiFtpServicePlugin.cpp Tue May 25 18:01:01 2010 +0300 +++ b/hti/HtiServicePlugins/HtiFtpServicePlugin/src/HtiFtpServicePlugin.cpp Mon Jun 14 11:37:33 2010 +0300 @@ -682,15 +682,33 @@ TInt newNameLength = aMessage[newNamePos]; GetFileNameL( aMessage.Mid( newNamePos, newNameLength + 1 ), aUnicode ); + TInt msglen = aMessage.Length(); + TInt recurse = 1; + if(msglen>originalLenngth+newNameLength+3) + { + recurse = aMessage[newNamePos+1+newNameLength]; + } + + TInt err=0; if ( IsFileTcb( origName ) || IsFileTcb( iFileName ) ) { HandleTcbCopyL( origName, iFileName ); } else{ iHandlerAO = new ( ELeave ) CFtpHandlerAO( this ); - TInt err = iFileMan->Copy( origName, iFileName, + + if (recurse) + { + err = iFileMan->Copy( origName, iFileName, ( CFileMan::EOverWrite | CFileMan::ERecurse ), iHandlerAO->iStatus ); + } + else + { + err = iFileMan->Copy( origName, iFileName, + ( CFileMan::EOverWrite ), + iHandlerAO->iStatus ); + } if ( err == KErrNone) { diff -r f5d4820de50d -r 9aaae25af322 hti/hti_plat/hti_api/inc/HtiVersion.h --- a/hti/hti_plat/hti_api/inc/HtiVersion.h Tue May 25 18:01:01 2010 +0300 +++ b/hti/hti_plat/hti_api/inc/HtiVersion.h Mon Jun 14 11:37:33 2010 +0300 @@ -25,13 +25,13 @@ // CONSTANTS const TUint8 KHtiVersionMajor = 2; -const TUint8 KHtiVersionMinor = 23; +const TUint8 KHtiVersionMinor = 24; const TUint8 KHtiVersionBuild = 0; const TUint16 KHtiVersionYear = 2010; const TUint8 KHtiVersionMonth = 5; -const TUint8 KHtiVersionWeek = 19; -const TUint8 KHtiVersionDay = 14; +const TUint8 KHtiVersionWeek = 21; +const TUint8 KHtiVersionDay = 28; // MACROS diff -r f5d4820de50d -r 9aaae25af322 stif/TestCombiner/inc/TestCase.h --- a/stif/TestCombiner/inc/TestCase.h Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestCombiner/inc/TestCase.h Mon Jun 14 11:37:33 2010 +0300 @@ -207,8 +207,8 @@ TDesC& aModuleName, TDesC& aTestId, TInt aExpectedResult, - TFullTestResult::TCaseExecutionResult - aCategory, + TFullTestResult::TCaseExecutionResult aCategory, + const TDesC& aTestCaseArguments, CTCTestModule* aModule ); //--PYTHON-- /** @@ -228,6 +228,11 @@ const TDesC& ModuleName(){ return *iModuleName; } /** + * Get test case arguments + */ + const TDesC& TestCaseArguments() const; + + /** * Get reference to RTestExecution. */ RTestExecution& TestExecution(){ return iTestExecution; } @@ -269,12 +274,13 @@ CTCTestCase( CTestCombiner* testCombiner, TInt aExpectedResult, TFullTestResult::TCaseExecutionResult aCategory, + const TDesC& aTestCaseArguments, CTCTestModule* aModule ); //--PYTHON-- /** * By default Symbian OS constructor is private. */ - void ConstructL( TDesC& aModuleName, TDesC& aTestId ); + void ConstructL( TDesC& aModuleName, TDesC& aTestId, const TDesC& aTestCaseArguments ); /** * Start complete the testcase(Complete2 make the final complete). @@ -298,6 +304,9 @@ // Module name HBufC* iModuleName; + // Test case arguments + HBufC* iTestCaseArguments; + // Handle to test case execution RTestExecution iTestExecution; diff -r f5d4820de50d -r 9aaae25af322 stif/TestCombiner/inc/TestCombinerUtils.h --- a/stif/TestCombiner/inc/TestCombinerUtils.h Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestCombiner/inc/TestCombinerUtils.h Mon Jun 14 11:37:33 2010 +0300 @@ -91,6 +91,11 @@ */ void SetTitleL(TDesC& aTitle); + /** + * Sets test case arguments. + */ + void SetTestCaseArgumentsL( const TDesC& aTestCaseArguments ); + private: /** * C++ default constructor. @@ -112,6 +117,7 @@ TFullTestResult::TCaseExecutionResult iCategory; TInt iTimeout; TPtrC iTitle; + TPtrC iTestCaseArguments; private: HBufC* iModuleBuf; @@ -119,7 +125,7 @@ HBufC* iConfigBuf; HBufC* iTestIdBuf; HBufC* iTitleBuf; - + HBufC* iTestCaseArgumentsBuf; }; // CLASS DECLARATION diff -r f5d4820de50d -r 9aaae25af322 stif/TestCombiner/inc/TestKeywords.h --- a/stif/TestCombiner/inc/TestKeywords.h Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestCombiner/inc/TestKeywords.h Mon Jun 14 11:37:33 2010 +0300 @@ -82,6 +82,7 @@ ECategory, ECaseTimeout, ECaseTitle, + EArgs, }; // pause keyword optional arguments diff -r f5d4820de50d -r 9aaae25af322 stif/TestCombiner/src/TestCase.cpp --- a/stif/TestCombiner/src/TestCase.cpp Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestCombiner/src/TestCase.cpp Mon Jun 14 11:37:33 2010 +0300 @@ -336,6 +336,7 @@ CTCTestCase::CTCTestCase( CTestCombiner* testCombiner, TInt aExpectedResult, TFullTestResult::TCaseExecutionResult aCategory, + const TDesC& aTestCaseArguments, CTCTestModule* aModule ): //--PYTHON CTestCase( testCombiner, aExpectedResult, aCategory, ECaseLocal, aModule ), //--PYTHON iResultPckg( iResult ) @@ -365,12 +366,13 @@ */ void CTCTestCase::ConstructL( TDesC& aModuleName, - TDesC& aTestId ) + TDesC& aTestId, + const TDesC& aTestCaseArguments ) { __ASSERT_ALWAYS( aModuleName.Length() < KMaxFileName, User::Leave( KErrArgument ) ); CTestCase::ConstructL( aTestId ); iModuleName = aModuleName.AllocL(); - + iTestCaseArguments = aTestCaseArguments.AllocL(); } /* @@ -397,17 +399,18 @@ TDesC& aModuleName, TDesC& aTestId, TInt aExpectedResult, - TFullTestResult::TCaseExecutionResult - aCategory, + TFullTestResult::TCaseExecutionResult aCategory, + const TDesC& aTestCaseArguments, CTCTestModule* aModule ) //--PYTHON { CTCTestCase* self = new (ELeave) CTCTestCase( testCombiner, aExpectedResult, aCategory, + aTestCaseArguments, aModule ); //--PYTHON CleanupStack::PushL( self ); - self->ConstructL( aModuleName, aTestId ); + self->ConstructL( aModuleName, aTestId, aTestCaseArguments ); CleanupStack::Pop(); return self; @@ -475,6 +478,7 @@ delete iProgress; delete iModuleName; + delete iTestCaseArguments; delete iCommand; } @@ -484,6 +488,34 @@ Class: CTCTestCase + Method: TestCaseArguments + + Description: Get test case arguments + + Parameters: None. + + Return Values: Test case arguments. + + Errors/Exceptions: None. + + Status: Proposal + +------------------------------------------------------------------------------- +*/ +const TDesC& CTCTestCase::TestCaseArguments() const + { + if ( iTestCaseArguments !=NULL ) + { + return *iTestCaseArguments; + } + return KNullDesC; + } + +/* +------------------------------------------------------------------------------- + + Class: CTCTestCase + Method: DoCancel Description: Derived from CActive, handles the Cancel. diff -r f5d4820de50d -r 9aaae25af322 stif/TestCombiner/src/TestCombiner.cpp --- a/stif/TestCombiner/src/TestCombiner.cpp Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestCombiner/src/TestCombiner.cpp Mon Jun 14 11:37:33 2010 +0300 @@ -1652,6 +1652,7 @@ aStartInfo.iTestId, aStartInfo.iExpectedResult, aStartInfo.iCategory, + aStartInfo.iTestCaseArguments, module ); //--PYTHON-- CleanupStack::PushL( tc ); @@ -1694,7 +1695,14 @@ &aStartInfo.iTestId, &aStartInfo.iModule, &aStartInfo.iIniFile, &aStartInfo.iConfig, aStartInfo.iCaseNum, aStartInfo.iExpectedResult ); - tc->TestExecution().RunTestCase( tc->iResultPckg, tc->iStatus ); + if ( tc->TestCaseArguments().Length() > 0 ) + { + tc->TestExecution().RunTestCase( tc->iResultPckg, tc->TestCaseArguments(), tc->iStatus ); + } + else + { + tc->TestExecution().RunTestCase( tc->iResultPckg, tc->iStatus ); + } iRunningTests++; @@ -2445,8 +2453,21 @@ */ void CTestRunner::ConstructL() { - - iPauseTimer.CreateLocal(); + TInt ret; + + ret = iPauseTimer.CreateLocal(); + if(ret != KErrNone) + { + __TRACE( KError, (_L("Unable to create RTimer: iPauseTimer [%d] "), ret)); + User::Leave(ret); + } + + ret = iPauseCombTimer.CreateLocal(); + if(ret != KErrNone) + { + __TRACE( KError, (_L("Unable to create RTimer: iPauseCombTimer [%d] "), ret)); + User::Leave(ret); + } iRemoteTimer = CRemoteTimer::NewL( iTestCombiner ); @@ -2515,6 +2536,8 @@ iLine = 0; iPauseTimer.Close(); + + iPauseCombTimer.Close(); } @@ -2550,8 +2573,34 @@ User::Leave( KErrGeneral ); } - TBool continueTask = EFalse; + TBool continueTask = EFalse; + + // Check if there is still some time for combiner pause and we need to + // continue pausing + if(iPauseCombRemainingTime > 0) + { + // Maximum time for one RTimer::After request + TInt maximumTime = KMaxTInt / 1000; + + __TRACE( KMessage, (_L("CTestRunner::RunL: Going to reissue PauseCombiner request ") ) ); + __TRACE( KMessage, (_L("CTestRunner::RunL: iRemainingTimeValue = %d"), iPauseCombRemainingTime ) ); + if( iPauseCombRemainingTime < maximumTime ) + { + iPauseCombTimer.After(iStatus, (iPauseCombRemainingTime * 1000)); + iPauseCombRemainingTime = 0; + } + else + { + iPauseCombRemainingTime -= maximumTime; + iPauseCombTimer.After(iStatus, (maximumTime * 1000)); + } + + SetActive(); + return; + } + + // Handling runner states switch( iState ) { case ERunnerWaitTimeout: @@ -2695,6 +2744,8 @@ __TRACE( KMessage, (_L("CTestRunner::DoCancel"))); iTestCombiner->TestModuleIf().Printf( KPrintPriLow, _L("Runner"), _L("DoCancel")); + iPauseCombTimer.Cancel(); + switch( iState ) { case ERunnerWaitTimeout: @@ -3243,6 +3294,12 @@ aStartInfo.SetTitleL(val); break; } + case TTCKeywords::EArgs: + { + __TRACE( KMessage, (_L("case arguments=%S"), &val)); + aStartInfo.SetTestCaseArgumentsL( val ); + } + break; default: { __TRACE( KError, (_L("Unknown or illegal keyword"))); @@ -3397,7 +3454,7 @@ _LIT( KErrMsgPauseTimeoutNotDefined, "PauseCombiner : No timeout value given or value has invalid format" ); _LIT( KErrMsgPauseTimeoutNotPositive, "PauseCombiner : Timeout value can't be <0" ); - TBool continueTask = ETrue; + TBool continueTask = EFalse; TInt pauseTime; TInt ret = KErrNone; @@ -3416,12 +3473,31 @@ User::Leave( KErrArgument ); } - //Time given by End User should be given in miliseconds - pauseTime*=1000; - - __TRACE( KMessage, (_L("time=%d"), pauseTime ) ); - - User::After( pauseTime ); + + // Maximum time for one RTimer::After request + TInt maximumTime = KMaxTInt / 1000; + + // Check if pause value is suitable for RTimer::After + if(pauseTime < maximumTime) + { + iPauseCombTimer.After(iStatus, pauseTime * 1000); + iPauseCombRemainingTime = 0; + } + else + { + // Given pause value after multiplication with 1000 is + // larger than KMaxTInt, so we need to split it and + // re-request After with remaining value from RunL + + iPauseCombRemainingTime = pauseTime - maximumTime; + iPauseCombTimer.After(iStatus, maximumTime * 1000); + } + + SetActive(); + + __TRACE(KMessage, (_L("Executing pause, time=[%d]"), pauseTime)); + + iState = ERunnerRunning; return continueTask; } diff -r f5d4820de50d -r 9aaae25af322 stif/TestCombiner/src/TestCombinerUtils.cpp --- a/stif/TestCombiner/src/TestCombinerUtils.cpp Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestCombiner/src/TestCombinerUtils.cpp Mon Jun 14 11:37:33 2010 +0300 @@ -86,7 +86,8 @@ iIniFileBuf(0), iConfigBuf(0), iTestIdBuf(0), - iTitleBuf(0) + iTitleBuf(0), + iTestCaseArgumentsBuf(0) { iCategory = TFullTestResult::ECaseExecuted; @@ -177,6 +178,7 @@ delete iConfigBuf; delete iTestIdBuf; delete iTitleBuf; + delete iTestCaseArgumentsBuf; } /* @@ -355,6 +357,34 @@ /* ------------------------------------------------------------------------------- + Class: CStartInfo + + Method: SetTestCaseArguments + + Description: Sets test case arguments + + Parameters: const TDesC& aTestCaseArguments: in: test case arguments. + + Return Values: None + + Errors/Exceptions: None + + Status: Proposal + +------------------------------------------------------------------------------- +*/ +void CStartInfo::SetTestCaseArgumentsL( const TDesC& aTestCaseArguments ) + { + delete iTestCaseArgumentsBuf; + iTestCaseArgumentsBuf = NULL; + iTestCaseArgumentsBuf = aTestCaseArguments.AllocL(); + iTestCaseArguments.Set( iTestCaseArgumentsBuf->Des() ); + } + + +/* +------------------------------------------------------------------------------- + DESCRIPTION This module contains the implementation of CSlaveInfo class diff -r f5d4820de50d -r 9aaae25af322 stif/TestCombiner/src/TestKeywords.cpp --- a/stif/TestCombiner/src/TestKeywords.cpp Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestCombiner/src/TestKeywords.cpp Mon Jun 14 11:37:33 2010 +0300 @@ -139,6 +139,7 @@ (TText*)L"category", (TText*)L"timeout", (TText*)L"title", + (TText*)L"args", }; if( aArg >= (TInt)(sizeof( runOptArgs )/sizeof(TText*)) ) diff -r f5d4820de50d -r 9aaae25af322 stif/TestEngine/BWINS/StifTestEngineu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stif/TestEngine/BWINS/StifTestEngineu.def Mon Jun 14 11:37:33 2010 +0300 @@ -0,0 +1,65 @@ +EXPORTS + ??0RSettingServer@@QAE@XZ @ 1 NONAME ; public: __thiscall RSettingServer::RSettingServer(void) + ??1CSTIFTestFrameworkSettings@@UAE@XZ @ 2 NONAME ; public: virtual __thiscall CSTIFTestFrameworkSettings::~CSTIFTestFrameworkSettings(void) + ?AddConfigFile@RTestEngine@@QAEHABV?$TBuf@$0IA@@@ABV?$TBuf@$0BAA@@@@Z @ 3 NONAME ; public: int __thiscall RTestEngine::AddConfigFile(class TBuf<128> const &,class TBuf<256> const &) + ?AddTestModule@RTestEngine@@QAEHABV?$TBuf@$0IA@@@ABV?$TBuf@$0BAA@@@@Z @ 4 NONAME ; public: int __thiscall RTestEngine::AddTestModule(class TBuf<128> const &,class TBuf<256> const &) + ?CancelAsyncRequest@RTestCase@@QAEHH@Z @ 5 NONAME ; public: int __thiscall RTestCase::CancelAsyncRequest(int) + ?CancelAsyncRequest@RTestEngine@@QAEHH@Z @ 6 NONAME ; public: int __thiscall RTestEngine::CancelAsyncRequest(int) + ?Close@RSettingServer@@QAEXXZ @ 7 NONAME ; public: void __thiscall RSettingServer::Close(void) + ?Close@RTestCase@@QAEXXZ @ 8 NONAME ; public: void __thiscall RTestCase::Close(void) + ?Close@RTestEngine@@QAEXXZ @ 9 NONAME ; public: void __thiscall RTestEngine::Close(void) + ?Close@RTestEngineServer@@QAEXXZ @ 10 NONAME ; public: void __thiscall RTestEngineServer::Close(void) + ?Connect@RSettingServer@@QAEHXZ @ 11 NONAME ; public: int __thiscall RSettingServer::Connect(void) + ?Connect@RTestEngineServer@@QAEHXZ @ 12 NONAME ; public: int __thiscall RTestEngineServer::Connect(void) + ?EnumerateTestCases@RTestEngine@@QAEXAAV?$TPckgBuf@H@@AAVTRequestStatus@@@Z @ 13 NONAME ; public: void __thiscall RTestEngine::EnumerateTestCases(class TPckgBuf &,class TRequestStatus &) + ?ErrorNotification@RTestEngine@@QAEXAAV?$TPckg@VTErrorNotification@@@@AAVTRequestStatus@@@Z @ 14 NONAME ; public: void __thiscall RTestEngine::ErrorNotification(class TPckg &,class TRequestStatus &) + ?Event@RTestEngine@@QAEXAAV?$TPckg@VTEventIf@@@@AAVTRequestStatus@@@Z @ 15 NONAME ; public: void __thiscall RTestEngine::Event(class TPckg &,class TRequestStatus &) + ?GetBooleanSettingsL@CSTIFTestFrameworkSettings@@QAEHPAVCStifSectionParser@@VTPtrC16@@AAH@Z @ 16 NONAME ; public: int __thiscall CSTIFTestFrameworkSettings::GetBooleanSettingsL(class CStifSectionParser *,class TPtrC16,int &) + ?GetFileSetting@CSTIFTestFrameworkSettings@@QAEHPAVCStifSectionParser@@VTPtrC16@@AAV3@@Z @ 17 NONAME ; public: int __thiscall CSTIFTestFrameworkSettings::GetFileSetting(class CStifSectionParser *,class TPtrC16,class TPtrC16 &) + ?GetFormatL@CSTIFTestFrameworkSettings@@QAEHPAVCStifSectionParser@@VTPtrC16@@AAW4TLoggerType@CStifLogger@@@Z @ 18 NONAME ; public: int __thiscall CSTIFTestFrameworkSettings::GetFormatL(class CStifSectionParser *,class TPtrC16,enum CStifLogger::TLoggerType &) + ?GetLoggerSettings@RSettingServer@@QAEHAAUTLoggerSettings@@@Z @ 19 NONAME ; public: int __thiscall RSettingServer::GetLoggerSettings(struct TLoggerSettings &) + ?GetOutputL@CSTIFTestFrameworkSettings@@QAEHPAVCStifSectionParser@@VTPtrC16@@AAW4TOutput@CStifLogger@@@Z @ 20 NONAME ; public: int __thiscall CSTIFTestFrameworkSettings::GetOutputL(class CStifSectionParser *,class TPtrC16,enum CStifLogger::TOutput &) + ?GetOverwriteL@CSTIFTestFrameworkSettings@@QAEHPAVCStifSectionParser@@VTPtrC16@@AAH@Z @ 21 NONAME ; public: int __thiscall CSTIFTestFrameworkSettings::GetOverwriteL(class CStifSectionParser *,class TPtrC16,int &) + ?GetReportModeL@CSTIFTestFrameworkSettings@@QAEHPAVCStifSectionParser@@VTPtrC16@@AAI@Z @ 22 NONAME ; public: int __thiscall CSTIFTestFrameworkSettings::GetReportModeL(class CStifSectionParser *,class TPtrC16,unsigned int &) + ?GetTestCases@RTestEngine@@QAEHAAV?$CFixedFlatArray@VTTestInfo@@@@@Z @ 23 NONAME ; public: int __thiscall RTestEngine::GetTestCases(class CFixedFlatArray &) + ?NewL@CSTIFTestFrameworkSettings@@SAPAV1@XZ @ 24 NONAME ; public: static class CSTIFTestFrameworkSettings * __cdecl CSTIFTestFrameworkSettings::NewL(void) + ?NotifyProgress@RTestCase@@QAEXAAV?$TPckg@VTTestProgress@@@@AAVTRequestStatus@@@Z @ 25 NONAME ; public: void __thiscall RTestCase::NotifyProgress(class TPckg &,class TRequestStatus &) + ?NotifyRemoteMsg@RTestCase@@QAEHAAVTDes8@@W4TStifCommand@@@Z @ 26 NONAME ; public: int __thiscall RTestCase::NotifyRemoteMsg(class TDes8 &,enum TStifCommand) + ?NotifyRemoteType@RTestCase@@QAEXAAV?$TPckg@W4TStifCommand@@@@AAV?$TPckg@H@@AAVTRequestStatus@@@Z @ 27 NONAME ; public: void __thiscall RTestCase::NotifyRemoteType(class TPckg &,class TPckg &,class TRequestStatus &) + ?Open@RTestCase@@QAEHAAVRTestEngineServer@@ABV?$TPckg@VTTestInfo@@@@@Z @ 28 NONAME ; public: int __thiscall RTestCase::Open(class RTestEngineServer &,class TPckg const &) + ?Open@RTestEngine@@QAEHAAVRTestEngineServer@@ABV?$TBuf@$0BAA@@@@Z @ 29 NONAME ; public: int __thiscall RTestEngine::Open(class RTestEngineServer &,class TBuf<256> const &) + ?OpenLoggerSession@RTestEngine@@QAEHAAVRTestEngineServer@@AAUTLoggerSettings@@@Z @ 30 NONAME ; public: int __thiscall RTestEngine::OpenLoggerSession(class RTestEngineServer &,struct TLoggerSettings &) + ?Pause@RTestCase@@QAEHXZ @ 31 NONAME ; public: int __thiscall RTestCase::Pause(void) + ?ReadLoggerSettingsFromIniFile@RSettingServer@@QAEHAAUTLoggerSettings@@@Z @ 32 NONAME ; public: int __thiscall RSettingServer::ReadLoggerSettingsFromIniFile(struct TLoggerSettings &) + ?RemoveConfigFile@RTestEngine@@QAEHABV?$TBuf@$0IA@@@ABV?$TBuf@$0BAA@@@@Z @ 33 NONAME ; public: int __thiscall RTestEngine::RemoveConfigFile(class TBuf<128> const &,class TBuf<256> const &) + ?RemoveTestModule@RTestEngine@@QAEHABV?$TBuf@$0IA@@@@Z @ 34 NONAME ; public: int __thiscall RTestEngine::RemoveTestModule(class TBuf<128> const &) + ?Resume@RTestCase@@QAEHXZ @ 35 NONAME ; public: int __thiscall RTestCase::Resume(void) + ?RunTestCase@RTestCase@@QAEXAAV?$TPckg@VTFullTestResult@@@@AAVTRequestStatus@@@Z @ 36 NONAME ; public: void __thiscall RTestCase::RunTestCase(class TPckg &,class TRequestStatus &) + ?SetAttribute@RTestEngine@@QAEHW4TAttribute@@ABVTDesC16@@@Z @ 37 NONAME ; public: int __thiscall RTestEngine::SetAttribute(enum TAttribute,class TDesC16 const &) + ?SetIniFileInformation@RSettingServer@@QAEHABV?$TBuf@$0BAA@@@@Z @ 38 NONAME ; public: int __thiscall RSettingServer::SetIniFileInformation(class TBuf<256> const &) + ?SetNewIniFileSetting@RSettingServer@@QAEHAAV?$TBuf@$0IA@@@@Z @ 39 NONAME ; public: int __thiscall RSettingServer::SetNewIniFileSetting(class TBuf<128> &) + ?StartEngine@@YAHXZ @ 40 NONAME ; int __cdecl StartEngine(void) + ?StartNewServer@@YAHAAV?$TBuf@$0IA@@@@Z @ 41 NONAME ; int __cdecl StartNewServer(class TBuf<128> &) + ?Version@RSettingServer@@QBE?AVTVersion@@XZ @ 42 NONAME ; public: class TVersion __thiscall RSettingServer::Version(void)const + ?Version@RTestEngineServer@@QBE?AVTVersion@@XZ @ 43 NONAME ; public: class TVersion __thiscall RTestEngineServer::Version(void)const + ??1CTestModuleList@@UAE@XZ @ 44 NONAME ; CTestModuleList::~CTestModuleList(void) + ?AddCfgFile@CTestModuleInfo@@QAEHAAVTDesC16@@@Z @ 45 NONAME ; int CTestModuleInfo::AddCfgFile(class TDesC16 &) + ?AddTestModule@CTestModuleList@@QAEHAAVTDesC16@@@Z @ 46 NONAME ; int CTestModuleList::AddTestModule(class TDesC16 &) + ?Count@CTestModuleList@@QAEHXZ @ 47 NONAME ; int CTestModuleList::Count(void) + ?CountCfgFiles@CTestModuleInfo@@QAEHXZ @ 48 NONAME ; int CTestModuleInfo::CountCfgFiles(void) + ?GetCfgFileName@CTestModuleInfo@@QAEHHAAVTDes16@@@Z @ 49 NONAME ; int CTestModuleInfo::GetCfgFileName(int, class TDes16 &) + ?GetIniFileName@CTestModuleInfo@@QAEHAAVTDes16@@@Z @ 50 NONAME ; int CTestModuleInfo::GetIniFileName(class TDes16 &) + ?GetModule@CTestModuleList@@QAEPAVCTestModuleInfo@@AAVTDesC16@@@Z @ 51 NONAME ; class CTestModuleInfo * CTestModuleList::GetModule(class TDesC16 &) + ?GetModule@CTestModuleList@@QAEPAVCTestModuleInfo@@H@Z @ 52 NONAME ; class CTestModuleInfo * CTestModuleList::GetModule(int) + ?GetModuleName@CTestModuleInfo@@QAEHAAVTDes16@@@Z @ 53 NONAME ; int CTestModuleInfo::GetModuleName(class TDes16 &) + ?GetUncheckedCfgFile@CTestModuleList@@QAEPAVCTestCaseFileInfo@@XZ @ 54 NONAME ; class CTestCaseFileInfo * CTestModuleList::GetUncheckedCfgFile(void) + ?NewL@CTestModuleList@@SAPAV1@PAVCStifLogger@@@Z @ 55 NONAME ; class CTestModuleList * CTestModuleList::NewL(class CStifLogger *) + ?SetIniFile@CTestModuleInfo@@QAEHAAVTDesC16@@@Z @ 56 NONAME ; int CTestModuleInfo::SetIniFile(class TDesC16 &) + ?GetCfgFileName@CTestCaseFileInfo@@QAEHAAVTDes16@@@Z @ 57 NONAME ; int CTestCaseFileInfo::GetCfgFileName(class TDes16 &) + ?SetChecked@CTestCaseFileInfo@@QAEXXZ @ 58 NONAME ; void CTestCaseFileInfo::SetChecked(void) + ?GetEngineSettings@RSettingServer@@QAEHAAUTEngineSettings@@@Z @ 59 NONAME ; int RSettingServer::GetEngineSettings(struct TEngineSettings &) + ?StoreEngineSettings@RSettingServer@@QAEHAAUTEngineSettings@@@Z @ 60 NONAME ; int RSettingServer::StoreEngineSettings(struct TEngineSettings &) + ?GetFormatL@CSTIFTestFrameworkSettings@@QAEHPAVCStifSectionParser@@VTPtrC16@@AAW4TLoggerType@CStifLogger@@AAH@Z @ 61 NONAME ; int CSTIFTestFrameworkSettings::GetFormatL(class CStifSectionParser *, class TPtrC16, enum CStifLogger::TLoggerType &, int &) + ?AddTestCaseResultToTestReport@RTestEngine@@QAEHABVTTestInfo@@ABVTFullTestResult@@H@Z @ 62 NONAME ; int RTestEngine::AddTestCaseResultToTestReport(class TTestInfo const &, class TFullTestResult const &, int) + ?RunTestCase@RTestCase@@QAEXAAV?$TPckg@VTFullTestResult@@@@ABVTDesC16@@AAVTRequestStatus@@@Z @ 63 NONAME ; void RTestCase::RunTestCase(class TPckg &, class TDesC16 const &, class TRequestStatus &) + diff -r f5d4820de50d -r 9aaae25af322 stif/TestEngine/eabi/StifTestEngineu.def --- a/stif/TestEngine/eabi/StifTestEngineu.def Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestEngine/eabi/StifTestEngineu.def Mon Jun 14 11:37:33 2010 +0300 @@ -110,4 +110,5 @@ _ZTV21CTestEngineSubSession @ 109 NONAME ; ## _ZN26CSTIFTestFrameworkSettings10GetFormatLEP18CStifSectionParser7TPtrC16RN11CStifLogger11TLoggerTypeERi @ 110 NONAME _ZN11RTestEngine29AddTestCaseResultToTestReportERK9TTestInfoRK15TFullTestResulti @ 111 NONAME + _ZN9RTestCase11RunTestCaseER5TPckgI15TFullTestResultERK7TDesC16R14TRequestStatus @ 112 NONAME diff -r f5d4820de50d -r 9aaae25af322 stif/TestEngine/inc/TestCaseController.h --- a/stif/TestEngine/inc/TestCaseController.h Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestEngine/inc/TestCaseController.h Mon Jun 14 11:37:33 2010 +0300 @@ -176,6 +176,9 @@ // Test Info TTestInfo iTestInfo; + // Test case arguments + HBufC* iTestCaseArguments; + // Internal state TTestCaseStatus iState; diff -r f5d4820de50d -r 9aaae25af322 stif/TestEngine/src/TestCaseController.cpp --- a/stif/TestEngine/src/TestCaseController.cpp Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestEngine/src/TestCaseController.cpp Mon Jun 14 11:37:33 2010 +0300 @@ -219,7 +219,7 @@ delete iRDebugLogger; delete iTimeout; - + delete iTestCaseArguments; } /* @@ -253,10 +253,23 @@ iState = ETestCaseRunning; + delete iTestCaseArguments; + iTestCaseArguments = NULL; + + TInt testCaseArgumentsLength = iMessage.GetDesLength( 1 ); + if ( ( testCaseArgumentsLength != KErrArgument ) && ( testCaseArgumentsLength != KErrBadDescriptor ) ) + { + iTestCaseArguments = HBufC::NewL( testCaseArgumentsLength ); + TPtr testCaseArgumentsPtr( iTestCaseArguments->Des() ); + User::LeaveIfError( iMessage.Read( 1, testCaseArgumentsPtr ) ); + iTestExecution.RunTestCase( iResultPckg, *iTestCaseArguments, iStatus ); + } + else + { + iTestExecution.RunTestCase( iResultPckg, iStatus ); + } SetActive(); - iTestExecution.RunTestCase( iResultPckg, iStatus ); - // If testcase has timeout (handler), then start it if ( iTimeout ) { @@ -2567,18 +2580,7 @@ __TRACE( KInit, ( _L("Loaded reset module[%S]"), &dllName ) ); } - // Verify the UID - TUid KUidTestModule = TUid::Uid ( 0x101FB3E7 ); - TUidType requiredUID( KDynamicLibraryUid, KSharedLibraryUid, KUidTestModule ); - - TUidType moduleUID = resetModule.Type(); - if ( moduleUID != requiredUID ) - { - // New instance can't be created - RDebug::Print( ( _L("STIF TF: Reset module has invalid UID. Aborting loading!") ) ); - __TRACE ( KError, ( CStifLogger::EError, _L("Reset module has invalid UID. Aborting loading!" ) ) ); - return KErrNotSupported; - } + // Get pointer to first exported function CTestInterfaceFactory libEntry; diff -r f5d4820de50d -r 9aaae25af322 stif/TestEngine/src/TestEngineClient.cpp --- a/stif/TestEngine/src/TestEngineClient.cpp Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestEngine/src/TestEngineClient.cpp Mon Jun 14 11:37:33 2010 +0300 @@ -661,6 +661,37 @@ 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. diff -r f5d4820de50d -r 9aaae25af322 stif/TestInterface/BWINS/StifTestInterfaceu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stif/TestInterface/BWINS/StifTestInterfaceu.def Mon Jun 14 11:37:33 2010 +0300 @@ -0,0 +1,141 @@ +EXPORTS + ??0CScriptBase@@IAE@AAVCTestModuleIf@@@Z @ 1 NONAME ; CScriptBase::CScriptBase(class CTestModuleIf &) + ??0TErrorNotification@@QAE@XZ @ 2 NONAME ; TErrorNotification::TErrorNotification(void) + ??0TFullTestResult@@QAE@XZ @ 3 NONAME ; TFullTestResult::TFullTestResult(void) + ??0TTestCaseInfo@@QAE@XZ @ 4 NONAME ; TTestCaseInfo::TTestCaseInfo(void) + ??0TTestInfo@@QAE@XZ @ 5 NONAME ; TTestInfo::TTestInfo(void) + ??0TTestProgress@@QAE@XZ @ 6 NONAME ; TTestProgress::TTestProgress(void) + ??0TTestResult@@QAE@XZ @ 7 NONAME ; TTestResult::TTestResult(void) + ??1CStifParser@@UAE@XZ @ 8 NONAME ; CStifParser::~CStifParser(void) + ??1CStifTFwIfProt@@UAE@XZ @ 9 NONAME ; CStifTFwIfProt::~CStifTFwIfProt(void) + ??1CTestModuleParamVer01@@UAE@XZ @ 10 NONAME ; CTestModuleParamVer01::~CTestModuleParamVer01(void) + ?Append@CStifTFwIfProt@@QAEHABVTDesC16@@@Z @ 11 NONAME ; int CStifTFwIfProt::Append(class TDesC16 const &) + ?Append@CStifTFwIfProt@@QAEHP6A?AVTPtrC16@@H@ZH0H@Z @ 12 NONAME ; int CStifTFwIfProt::Append(class TPtrC16 (*)(int), int, class TPtrC16 (*)(int), int) + ?Append@CStifTFwIfProt@@QAEHP6A?AVTPtrC16@@H@ZH@Z @ 13 NONAME ; int CStifTFwIfProt::Append(class TPtrC16 (*)(int), int) + ?Append@CStifTFwIfProt@@QAEHP6A?AVTPtrC16@@H@ZHABVTDesC16@@@Z @ 14 NONAME ; int CStifTFwIfProt::Append(class TPtrC16 (*)(int), int, class TDesC16 const &) + ?Append@CStifTFwIfProt@@QAEHP6A?AVTPtrC16@@H@ZHH@Z @ 15 NONAME ; int CStifTFwIfProt::Append(class TPtrC16 (*)(int), int, int) + ?AppendId@CStifTFwIfProt@@QAEHK@Z @ 16 NONAME ; int CStifTFwIfProt::AppendId(unsigned long) + ?CallTestClass@CScriptBase@@QAEHABVTDesC16@@@Z @ 17 NONAME ; int CScriptBase::CallTestClass(class TDesC16 const &) + ?CancelEvent@CTestModuleIf@@QAEHAAVTEventIf@@PAVTRequestStatus@@@Z @ 18 NONAME ; int CTestModuleIf::CancelEvent(class TEventIf &, class TRequestStatus *) + ?CancelSignal@CScriptBase@@AAEXXZ @ 19 NONAME ; void CScriptBase::CancelSignal(void) + ?CheckAllowResult@CTestModuleIf@@QAEHH@Z @ 20 NONAME ; int CTestModuleIf::CheckAllowResult(int) + ?CmdType@CStifTFwIfProt@@SA?AVTPtrC16@@H@Z @ 21 NONAME ; class TPtrC16 CStifTFwIfProt::CmdType(int) + ?CreateL@CStifTFwIfProt@@QAEXH@Z @ 22 NONAME ; void CStifTFwIfProt::CreateL(int) + ?CreationResult@CStifLogger@@QAEHXZ @ 23 NONAME ; int CStifLogger::CreationResult(void) + ?DstDevId@CStifTFwIfProt@@QAEGXZ @ 24 NONAME ; unsigned short CStifTFwIfProt::DstDevId(void) + ?DstId@CStifTFwIfProt@@QAEKXZ @ 25 NONAME ; unsigned long CStifTFwIfProt::DstId(void) + ?DstTestId@CStifTFwIfProt@@QAEGXZ @ 26 NONAME ; unsigned short CStifTFwIfProt::DstTestId(void) + ?EnableSignal@CScriptBase@@AAEXAAVTRequestStatus@@@Z @ 27 NONAME ; void CScriptBase::EnableSignal(class TRequestStatus &) + ?Event@CTestModuleIf@@QAEHAAVTEventIf@@@Z @ 28 NONAME ; int CTestModuleIf::Event(class TEventIf &) + ?Event@CTestModuleIf@@QAEXAAVTEventIf@@AAVTRequestStatus@@@Z @ 29 NONAME ; void CTestModuleIf::Event(class TEventIf &, class TRequestStatus &) + ?EventStatus@CStifTFwIfProt@@SA?AVTPtrC16@@H@Z @ 30 NONAME ; class TPtrC16 CStifTFwIfProt::EventStatus(int) + ?EventStatusParams@CStifTFwIfProt@@SA?AVTPtrC16@@H@Z @ 31 NONAME ; class TPtrC16 CStifTFwIfProt::EventStatusParams(int) + ?EventType@CStifTFwIfProt@@SA?AVTPtrC16@@H@Z @ 32 NONAME ; class TPtrC16 CStifTFwIfProt::EventType(int) + ?GetChar@CStifItemParser@@QAEHABVTDesC16@@AAVTChar@@@Z @ 33 NONAME ; int CStifItemParser::GetChar(class TDesC16 const &, class TChar &) + ?GetInt@CStifItemParser@@QAEHABVTDesC16@@AAH@Z @ 34 NONAME ; int CStifItemParser::GetInt(class TDesC16 const &, int &) + ?GetInt@CStifItemParser@@QAEHABVTDesC16@@AAIW4TRadix@@@Z @ 35 NONAME ; int CStifItemParser::GetInt(class TDesC16 const &, unsigned int &, enum TRadix) + ?GetItemLineL@CStifSectionParser@@QAEPAVCStifItemParser@@ABVTDesC16@@W4TTagToReturnValue@@@Z @ 36 NONAME ; class CStifItemParser * CStifSectionParser::GetItemLineL(class TDesC16 const &, enum TTagToReturnValue) + ?GetLine@CStifSectionParser@@QAEHABVTDesC16@@AAVTPtrC16@@W4TTagToReturnValue@@@Z @ 37 NONAME ; int CStifSectionParser::GetLine(class TDesC16 const &, class TPtrC16 &, enum TTagToReturnValue) + ?GetMeasurementOptions@CTestModuleIf@@QAEHAAH@Z @ 38 NONAME ; int CTestModuleIf::GetMeasurementOptions(int &) + ?GetNextChar@CStifItemParser@@QAEHAAVTChar@@@Z @ 39 NONAME ; int CStifItemParser::GetNextChar(class TChar &) + ?GetNextChar@CStifItemParser@@QAEHABVTDesC16@@AAVTChar@@@Z @ 40 NONAME ; int CStifItemParser::GetNextChar(class TDesC16 const &, class TChar &) + ?GetNextInt@CStifItemParser@@QAEHAAH@Z @ 41 NONAME ; int CStifItemParser::GetNextInt(int &) + ?GetNextInt@CStifItemParser@@QAEHAAIW4TRadix@@@Z @ 42 NONAME ; int CStifItemParser::GetNextInt(unsigned int &, enum TRadix) + ?GetNextInt@CStifItemParser@@QAEHABVTDesC16@@AAH@Z @ 43 NONAME ; int CStifItemParser::GetNextInt(class TDesC16 const &, int &) + ?GetNextInt@CStifItemParser@@QAEHABVTDesC16@@AAIW4TRadix@@@Z @ 44 NONAME ; int CStifItemParser::GetNextInt(class TDesC16 const &, unsigned int &, enum TRadix) + ?GetNextItemLineL@CStifSectionParser@@QAEPAVCStifItemParser@@ABVTDesC16@@W4TTagToReturnValue@@@Z @ 45 NONAME ; class CStifItemParser * CStifSectionParser::GetNextItemLineL(class TDesC16 const &, enum TTagToReturnValue) + ?GetNextItemLineL@CStifSectionParser@@QAEPAVCStifItemParser@@XZ @ 46 NONAME ; class CStifItemParser * CStifSectionParser::GetNextItemLineL(void) + ?GetNextLine@CStifSectionParser@@QAEHAAVTPtrC16@@@Z @ 47 NONAME ; int CStifSectionParser::GetNextLine(class TPtrC16 &) + ?GetNextLine@CStifSectionParser@@QAEHABVTDesC16@@AAVTPtrC16@@W4TTagToReturnValue@@@Z @ 48 NONAME ; int CStifSectionParser::GetNextLine(class TDesC16 const &, class TPtrC16 &, enum TTagToReturnValue) + ?GetNextString@CStifItemParser@@QAEHAAVTPtrC16@@@Z @ 49 NONAME ; int CStifItemParser::GetNextString(class TPtrC16 &) + ?GetNextString@CStifItemParser@@QAEHABVTDesC16@@AAVTPtrC16@@@Z @ 50 NONAME ; int CStifItemParser::GetNextString(class TDesC16 const &, class TPtrC16 &) + ?GetPosition@CStifSectionParser@@QAEHXZ @ 51 NONAME ; int CStifSectionParser::GetPosition(void) + ?GetStoredState@CTestModuleIf@@QAEHAAHAAV?$TBuf@$0IA@@@@Z @ 52 NONAME ; int CTestModuleIf::GetStoredState(int &, class TBuf<128> &) + ?GetString@CStifItemParser@@QAEHABVTDesC16@@AAVTPtrC16@@@Z @ 53 NONAME ; int CStifItemParser::GetString(class TDesC16 const &, class TPtrC16 &) + ?GetTestObject@CScriptBase@@QAEPAV1@ABVTDesC16@@@Z @ 54 NONAME ; class CScriptBase * CScriptBase::GetTestObject(class TDesC16 const &) + ?Log@CStifLogger@@QAAHHV?$TRefByValue@$$CBVTDesC16@@@@ZZ @ 55 NONAME ; int CStifLogger::Log(int, class TRefByValue, ...) + ?Log@CStifLogger@@QAAHHV?$TRefByValue@$$CBVTDesC8@@@@ZZ @ 56 NONAME ; int CStifLogger::Log(int, class TRefByValue, ...) + ?Log@CStifLogger@@QAAHV?$TRefByValue@$$CBVTDesC16@@@@ZZ @ 57 NONAME ; int CStifLogger::Log(class TRefByValue, ...) + ?Log@CStifLogger@@QAAHV?$TRefByValue@$$CBVTDesC8@@@@ZZ @ 58 NONAME ; int CStifLogger::Log(class TRefByValue, ...) + ?Log@CStifLogger@@QAEHABVTDesC16@@@Z @ 59 NONAME ; int CStifLogger::Log(class TDesC16 const &) + ?Log@CStifLogger@@QAEHABVTDesC8@@@Z @ 60 NONAME ; int CStifLogger::Log(class TDesC8 const &) + ?Log@CStifLogger@@QAEHHABVTDesC16@@@Z @ 61 NONAME ; int CStifLogger::Log(int, class TDesC16 const &) + ?Log@CStifLogger@@QAEHHABVTDesC8@@@Z @ 62 NONAME ; int CStifLogger::Log(int, class TDesC8 const &) + ?MsgType@CStifTFwIfProt@@SA?AVTPtrC16@@H@Z @ 63 NONAME ; class TPtrC16 CStifTFwIfProt::MsgType(int) + ?NewL@CSTIFTestMeasurement@@SAPAV1@PAVCTestModuleBase@@W4TSTIFMeasurementType@1@ABVTDesC16@@@Z @ 64 NONAME ; class CSTIFTestMeasurement * CSTIFTestMeasurement::NewL(class CTestModuleBase *, enum CSTIFTestMeasurement::TSTIFMeasurementType, class TDesC16 const &) + ?NewL@CStifItemParser@@SAPAV1@VTPtrC16@@HH@Z @ 65 NONAME ; class CStifItemParser * CStifItemParser::NewL(class TPtrC16, int, int) + ?NewL@CStifLogger@@KAPAV1@ABVTDesC16@@0AAUTLoggerSettings@@@Z @ 66 NONAME ; class CStifLogger * CStifLogger::NewL(class TDesC16 const &, class TDesC16 const &, struct TLoggerSettings &) + ?NewL@CStifLogger@@SAPAV1@ABVTDesC16@@0W4TLoggerType@1@W4TOutput@1@HHHHHHHH@Z @ 67 NONAME ; class CStifLogger * CStifLogger::NewL(class TDesC16 const &, class TDesC16 const &, enum CStifLogger::TLoggerType, enum CStifLogger::TOutput, int, int, int, int, int, int, int, int) + ?NewL@CStifParser@@SAPAV1@ABVTDesC16@@0W4TCommentType@1@@Z @ 68 NONAME ; class CStifParser * CStifParser::NewL(class TDesC16 const &, class TDesC16 const &, enum CStifParser::TCommentType) + ?NewL@CStifParser@@SAPAV1@ABVTDesC16@@W4TCommentType@1@@Z @ 69 NONAME ; class CStifParser * CStifParser::NewL(class TDesC16 const &, enum CStifParser::TCommentType) + ?NewL@CStifTFwIfProt@@SAPAV1@XZ @ 70 NONAME ; class CStifTFwIfProt * CStifTFwIfProt::NewL(void) + ?NewL@CTestModuleIf@@SAPAV1@PAVCTestThreadContainer@@PAVCTestModuleBase@@@Z @ 71 NONAME ; class CTestModuleIf * CTestModuleIf::NewL(class CTestThreadContainer *, class CTestModuleBase *) + ?NewL@CTestModuleParamVer01@@SAPAV1@XZ @ 72 NONAME ; class CTestModuleParamVer01 * CTestModuleParamVer01::NewL(void) + ?NewL@MSTIFTestInterference@@SAPAV1@PAVCTestModuleBase@@W4TStifTestInterferenceCategory@1@@Z @ 73 NONAME ; class MSTIFTestInterference * MSTIFTestInterference::NewL(class CTestModuleBase *, enum MSTIFTestInterference::TStifTestInterferenceCategory) + ?NextSectionL@CStifParser@@QAEPAVCStifSectionParser@@ABVTDesC16@@0H@Z @ 74 NONAME ; class CStifSectionParser * CStifParser::NextSectionL(class TDesC16 const &, class TDesC16 const &, int) + ?NextSubSectionL@CStifSectionParser@@QAEPAV1@ABVTDesC16@@0H@Z @ 75 NONAME ; class CStifSectionParser * CStifSectionParser::NextSubSectionL(class TDesC16 const &, class TDesC16 const &, int) + ?OutputType@CStifLogger@@QAE?AW4TOutput@1@XZ @ 76 NONAME ; enum CStifLogger::TOutput CStifLogger::OutputType(void) + ?ParsingType@CStifItemParser@@QAE?AW4TParsingType@1@XZ @ 77 NONAME ; enum CStifItemParser::TParsingType CStifItemParser::ParsingType(void) + ?Printf@CTestModuleIf@@QAAXHABVTDesC16@@V?$TRefByValue@$$CBVTDesC16@@@@ZZ @ 78 NONAME ; void CTestModuleIf::Printf(int, class TDesC16 const &, class TRefByValue, ...) + ?Reboot@CTestModuleIf@@QAEHH@Z @ 79 NONAME ; int CTestModuleIf::Reboot(int) + ?Remainder@CStifItemParser@@QAEHAAVTPtrC16@@@Z @ 80 NONAME ; int CStifItemParser::Remainder(class TPtrC16 &) + ?RemoteReceive@CTestModuleIf@@QAEXAAVTDes16@@AAVTRequestStatus@@@Z @ 81 NONAME ; void CTestModuleIf::RemoteReceive(class TDes16 &, class TRequestStatus &) + ?RemoteReceiveCancel@CTestModuleIf@@QAEXXZ @ 82 NONAME ; void CTestModuleIf::RemoteReceiveCancel(void) + ?RemoteSend@CTestModuleIf@@QAEHABVTDesC16@@@Z @ 83 NONAME ; int CTestModuleIf::RemoteSend(class TDesC16 const &) + ?RemoteType@CStifTFwIfProt@@SA?AVTPtrC16@@H@Z @ 84 NONAME ; class TPtrC16 CStifTFwIfProt::RemoteType(int) + ?ResetAllowResult@CTestModuleIf@@QAEHXZ @ 85 NONAME ; int CTestModuleIf::ResetAllowResult(void) + ?RespParam@CStifTFwIfProt@@SA?AVTPtrC16@@H@Z @ 86 NONAME ; class TPtrC16 CStifTFwIfProt::RespParam(int) + ?ResultCategory@CStifTFwIfProt@@SA?AVTPtrC16@@H@Z @ 87 NONAME ; class TPtrC16 CStifTFwIfProt::ResultCategory(int) + ?RunInternalL@CScriptBase@@MAEHQBVTStifFunctionInfo@@HAAVCStifItemParser@@@Z @ 88 NONAME ; int CScriptBase::RunInternalL(class TStifFunctionInfo const * const, int, class CStifItemParser &) + ?RunParams@CStifTFwIfProt@@SA?AVTPtrC16@@H@Z @ 89 NONAME ; class TPtrC16 CStifTFwIfProt::RunParams(int) + ?RunStatus@CStifTFwIfProt@@SA?AVTPtrC16@@H@Z @ 90 NONAME ; class TPtrC16 CStifTFwIfProt::RunStatus(int) + ?RunStatusParams@CStifTFwIfProt@@SA?AVTPtrC16@@H@Z @ 91 NONAME ; class TPtrC16 CStifTFwIfProt::RunStatusParams(int) + ?SaveData@CStifLogger@@QAEHAAVTDesC16@@@Z @ 92 NONAME ; int CStifLogger::SaveData(class TDesC16 &) + ?SaveData@CStifLogger@@QAEHAAVTDesC8@@@Z @ 93 NONAME ; int CStifLogger::SaveData(class TDesC8 &) + ?SectionL@CStifParser@@QAEPAVCStifSectionParser@@ABVTDesC16@@0H@Z @ 94 NONAME ; class CStifSectionParser * CStifParser::SectionL(class TDesC16 const &, class TDesC16 const &, int) + ?SetAllowResult@CTestModuleIf@@QAEHH@Z @ 95 NONAME ; int CTestModuleIf::SetAllowResult(int) + ?SetBehavior@CTestModuleIf@@QAEHW4TTestBehavior@1@PAX@Z @ 96 NONAME ; int CTestModuleIf::SetBehavior(enum CTestModuleIf::TTestBehavior, void *) + ?SetCmdType@CStifTFwIfProt@@QAEHW4TCmdType@1@@Z @ 97 NONAME ; int CStifTFwIfProt::SetCmdType(enum CStifTFwIfProt::TCmdType) + ?SetDstId@CStifTFwIfProt@@QAEHK@Z @ 98 NONAME ; int CStifTFwIfProt::SetDstId(unsigned long) + ?SetExitReason@CTestModuleIf@@QAEXW4TExitReason@1@H@Z @ 99 NONAME ; void CTestModuleIf::SetExitReason(enum CTestModuleIf::TExitReason, int) + ?SetL@CStifTFwIfProt@@QAEHABVTDesC16@@@Z @ 100 NONAME ; int CStifTFwIfProt::SetL(class TDesC16 const &) + ?SetMsgType@CStifTFwIfProt@@QAEHW4TMsgType@1@@Z @ 101 NONAME ; int CStifTFwIfProt::SetMsgType(enum CStifTFwIfProt::TMsgType) + ?SetParsingType@CStifItemParser@@QAEHW4TParsingType@1@@Z @ 102 NONAME ; int CStifItemParser::SetParsingType(enum CStifItemParser::TParsingType) + ?SetPosition@CStifSectionParser@@QAEHH@Z @ 103 NONAME ; int CStifSectionParser::SetPosition(int) + ?SetRespType@CStifTFwIfProt@@QAEHW4TMsgType@1@@Z @ 104 NONAME ; int CStifTFwIfProt::SetRespType(enum CStifTFwIfProt::TMsgType) + ?SetResult@TTestResult@@QAEXHABVTDesC16@@@Z @ 105 NONAME ; void TTestResult::SetResult(int, class TDesC16 const &) + ?SetScripter@CScriptBase@@AAEXP6AHPAVCTestScripter@@W4TStifTSCallBackType@@ABVTDesC16@@@Z0@Z @ 106 NONAME ; void CScriptBase::SetScripter(int (*)(class CTestScripter *, enum TStifTSCallBackType, class TDesC16 const &), class CTestScripter *) + ?SetSrcId@CStifTFwIfProt@@QAEHK@Z @ 107 NONAME ; int CStifTFwIfProt::SetSrcId(unsigned long) + ?Signal@CScriptBase@@QAEXH@Z @ 108 NONAME ; void CScriptBase::Signal(int) + ?SrcDevId@CStifTFwIfProt@@QAEGXZ @ 109 NONAME ; unsigned short CStifTFwIfProt::SrcDevId(void) + ?SrcId@CStifTFwIfProt@@QAEKXZ @ 110 NONAME ; unsigned long CStifTFwIfProt::SrcId(void) + ?SrcTestId@CStifTFwIfProt@@QAEGXZ @ 111 NONAME ; unsigned short CStifTFwIfProt::SrcTestId(void) + ?Start@CSTIFTestMeasurement@@QAEHXZ @ 112 NONAME ; int CSTIFTestMeasurement::Start(void) + ?StartSession@@YAHXZ @ 113 NONAME ; int StartSession(void) + ?StifMacroError@CTestModuleIf@@QAEHHPBEPBDHHHHHHH@Z @ 114 NONAME ; int CTestModuleIf::StifMacroError(int, unsigned char const *, char const *, int, int, int, int, int, int, int) + ?Stop@CSTIFTestMeasurement@@QAEHXZ @ 115 NONAME ; int CSTIFTestMeasurement::Stop(void) + ?StoreState@CTestModuleIf@@QAEHHAAV?$TBuf@$0IA@@@@Z @ 116 NONAME ; int CTestModuleIf::StoreState(int, class TBuf<128> &) + ?SubSectionL@CStifSectionParser@@QAEPAV1@ABVTDesC16@@0H@Z @ 117 NONAME ; class CStifSectionParser * CStifSectionParser::SubSectionL(class TDesC16 const &, class TDesC16 const &, int) + ?TestModuleIf@CScriptBase@@QAEAAVCTestModuleIf@@XZ @ 118 NONAME ; class CTestModuleIf & CScriptBase::TestModuleIf(void) + ?WriteDelimiter@CStifLogger@@QAEHABVTDesC16@@H@Z @ 119 NONAME ; int CStifLogger::WriteDelimiter(class TDesC16 const &, int) + ?WriteDelimiter@CStifLogger@@QAEHABVTDesC8@@H@Z @ 120 NONAME ; int CStifLogger::WriteDelimiter(class TDesC8 const &, int) + ?StopExecution@CTestModuleIf@@QAEHW4TStopExecutionType@@H@Z @ 121 NONAME ; int CTestModuleIf::StopExecution(enum TStopExecutionType, int) + ?GetConstantValue@CScriptBase@@IAEHABVTDesC16@@AAH@Z @ 122 NONAME ; int CScriptBase::GetConstantValue(class TDesC16 const &, int &) + ?GetConstantValue@CScriptBase@@IAEHABVTDesC16@@AAN@Z @ 123 NONAME ; int CScriptBase::GetConstantValue(class TDesC16 const &, double &) + ?GetConstantValue@CScriptBase@@IAEHABVTDesC16@@AAVTDes16@@@Z @ 124 NONAME ; int CScriptBase::GetConstantValue(class TDesC16 const &, class TDes16 &) + ?CorrectFilePathL@TStifUtil@@SAXAAVTDes16@@@Z @ 125 NONAME ; void TStifUtil::CorrectFilePathL(class TDes16 &) + ?GetTestCaseTitleL@CTestModuleIf@@QAEXAAVTDes16@@@Z @ 126 NONAME ; void CTestModuleIf::GetTestCaseTitleL(class TDes16 &) + ?STIFVersion@TStifUtil@@SAXAAH00AAVTDes16@@@Z @ 127 NONAME ; void TStifUtil::STIFVersion(int &, int &, int &, class TDes16 &) + ?GetUiEnvProxy@CTestModuleIf@@QAEPAVCUiEnvProxy@@XZ @ 128 NONAME ; class CUiEnvProxy * CTestModuleIf::GetUiEnvProxy(void) + ?UITesting@CTestModuleIf@@QAEHXZ @ 129 NONAME ; int CTestModuleIf::UITesting(void) + ?SendTestModuleVersion@CTestModuleIf@@QAEHVTVersion@@V?$TBuf@$0BAA@@@@Z @ 130 NONAME ; int CTestModuleIf::SendTestModuleVersion(class TVersion, class TBuf<256>) + ?SendTestModuleVersion@CTestModuleIf@@QAEHAAVTVersion@@ABVTDesC16@@H@Z @ 131 NONAME ; int CTestModuleIf::SendTestModuleVersion(class TVersion &, class TDesC16 const &, int) + ?SetResultDescription@CScriptBase@@QAEXABVTDesC16@@@Z @ 132 NONAME ; void CScriptBase::SetResultDescription(class TDesC16 const &) + ?SetLocalValue@CScriptBase@@IAEHABVTDesC16@@0@Z @ 133 NONAME ; int CScriptBase::SetLocalValue(class TDesC16 const &, class TDesC16 const &) + ?SetLocalValue@CScriptBase@@IAEHABVTDesC16@@H@Z @ 134 NONAME ; int CScriptBase::SetLocalValue(class TDesC16 const &, int) + ?SetLocalValue@CScriptBase@@IAEHABVTDesC16@@N@Z @ 135 NONAME ; int CScriptBase::SetLocalValue(class TDesC16 const &, double) + ?GetLocalValue@CScriptBase@@IAEHABVTDesC16@@AAH@Z @ 136 NONAME ; int CScriptBase::GetLocalValue(class TDesC16 const &, int &) + ?GetLocalValue@CScriptBase@@IAEHABVTDesC16@@AAN@Z @ 137 NONAME ; int CScriptBase::GetLocalValue(class TDesC16 const &, double &) + ?GetLocalValue@CScriptBase@@IAEHABVTDesC16@@AAVTDes16@@@Z @ 138 NONAME ; int CScriptBase::GetLocalValue(class TDesC16 const &, class TDes16 &) + ?GetTestCaseArguments@CTestModuleIf@@QBEABVTDesC16@@XZ @ 139 NONAME ; class TDesC16 const & CTestModuleIf::GetTestCaseArguments(void) const + diff -r f5d4820de50d -r 9aaae25af322 stif/TestInterface/eabi/StifTestInterfaceu.def --- a/stif/TestInterface/eabi/StifTestInterfaceu.def Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestInterface/eabi/StifTestInterfaceu.def Mon Jun 14 11:37:33 2010 +0300 @@ -183,4 +183,5 @@ _ZN11CScriptBase13SetLocalValueERK7TDesC16S2_ @ 182 NONAME _ZN11CScriptBase13SetLocalValueERK7TDesC16d @ 183 NONAME _ZN11CScriptBase13SetLocalValueERK7TDesC16i @ 184 NONAME + _ZNK13CTestModuleIf20GetTestCaseArgumentsEv @ 185 NONAME diff -r f5d4820de50d -r 9aaae25af322 stif/TestInterface/src/TestModuleIf.cpp --- a/stif/TestInterface/src/TestModuleIf.cpp Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestInterface/src/TestModuleIf.cpp Mon Jun 14 11:37:33 2010 +0300 @@ -1403,6 +1403,30 @@ Class: CTestModuleIf + Method: GetTestCaseArguments + + Description: Returns test case arguments. + + Parameters: none + + Return Values: test case arguments. + + Errors/Exceptions: None + + Status: proposal + +------------------------------------------------------------------------------- +*/ +EXPORT_C const TDesC& CTestModuleIf::GetTestCaseArguments() const + { + return iTestExecution->GetTestCaseArguments(); + } + +/* +------------------------------------------------------------------------------- + + Class: CTestModuleIf + Method: UITesting Description: Gets information if it is UI test or not diff -r f5d4820de50d -r 9aaae25af322 stif/TestServer/BWINS/StifTestServeru.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stif/TestServer/BWINS/StifTestServeru.def Mon Jun 14 11:37:33 2010 +0300 @@ -0,0 +1,33 @@ +EXPORTS + ??0RTestServer@@QAE@XZ @ 1 NONAME ; RTestServer::RTestServer(void) + ?CancelAsyncRequest@RTestExecution@@QAEHH@Z @ 2 NONAME ; int RTestExecution::CancelAsyncRequest(int) + ?CancelAsyncRequest@RTestModule@@QAEHH@Z @ 3 NONAME ; int RTestModule::CancelAsyncRequest(int) + ?Close@RTestExecution@@QAEXXZ @ 4 NONAME ; void RTestExecution::Close(void) + ?Close@RTestModule@@QAEXXZ @ 5 NONAME ; void RTestModule::Close(void) + ?Close@RTestServer@@QAEXXZ @ 6 NONAME ; void RTestServer::Close(void) + ?Connect@RTestServer@@QAEHABV?$TBuf@$0BAA@@@ABVTDesC16@@@Z @ 7 NONAME ; int RTestServer::Connect(class TBuf<256> const &, class TDesC16 const &) + ?EnumerateTestCases@RTestModule@@QAEXAAVTDesC16@@AAV?$TPckgBuf@H@@AAVTRequestStatus@@@Z @ 8 NONAME ; void RTestModule::EnumerateTestCases(class TDesC16 &, class TPckgBuf &, class TRequestStatus &) + ?ErrorNotification@RTestModule@@QAEXAAV?$TPckg@VTErrorNotification@@@@AAVTRequestStatus@@@Z @ 9 NONAME ; void RTestModule::ErrorNotification(class TPckg &, class TRequestStatus &) + ?GetTestCases@RTestModule@@QAEHAAV?$CFixedFlatArray@VTTestCaseInfo@@@@@Z @ 10 NONAME ; int RTestModule::GetTestCases(class CFixedFlatArray &) + ?NotifyEvent@RTestExecution@@QAEHAAV?$TPckg@VTEventIf@@@@AAVTRequestStatus@@H@Z @ 11 NONAME ; int RTestExecution::NotifyEvent(class TPckg &, class TRequestStatus &, int) + ?NotifyProgress@RTestExecution@@QAEHAAV?$TPckg@VTTestProgress@@@@AAVTRequestStatus@@@Z @ 12 NONAME ; int RTestExecution::NotifyProgress(class TPckg &, class TRequestStatus &) + ?NotifyRemoteCmd@RTestExecution@@QAEHAAV?$TPckg@W4TStifCommand@@@@AAV?$TPckg@H@@AAVTRequestStatus@@@Z @ 13 NONAME ; int RTestExecution::NotifyRemoteCmd(class TPckg &, class TPckg &, class TRequestStatus &) + ?Open@RTestExecution@@QAEHAAVRTestServer@@HABV?$TBuf@$0BAA@@@@Z @ 14 NONAME ; int RTestExecution::Open(class RTestServer &, int, class TBuf<256> const &) + ?Open@RTestModule@@QAEHAAVRTestServer@@AAV?$TBuf@$0BAA@@@@Z @ 15 NONAME ; int RTestModule::Open(class RTestServer &, class TBuf<256> &) + ?Pause@RTestExecution@@QAEHXZ @ 16 NONAME ; int RTestExecution::Pause(void) + ?ReadRemoteCmdInfo@RTestExecution@@QAEHAAVTDes8@@W4TStifCommand@@H@Z @ 17 NONAME ; int RTestExecution::ReadRemoteCmdInfo(class TDes8 &, enum TStifCommand, int) + ?Resume@RTestExecution@@QAEHXZ @ 18 NONAME ; int RTestExecution::Resume(void) + ?RunTestCase@RTestExecution@@QAEXAAV?$TPckg@VTFullTestResult@@@@AAVTRequestStatus@@@Z @ 19 NONAME ; void RTestExecution::RunTestCase(class TPckg &, class TRequestStatus &) + ?StartNewServer@@YAHABV?$TBuf@$0BAA@@@AAV1@@Z @ 20 NONAME ; int StartNewServer(class TBuf<256> const &, class TBuf<256> &) + ?StartNewServer@@YAHABV?$TBuf@$0BAA@@@AAV1@HVRSemaphore@@@Z @ 21 NONAME ; int StartNewServer(class TBuf<256> const &, class TBuf<256> &, int, class RSemaphore) + ?Version@RTestServer@@QBE?AVTVersion@@XZ @ 22 NONAME ; class TVersion RTestServer::Version(void) const + ?GetServerThreadId@RTestServer@@QAEHAAVTThreadId@@@Z @ 23 NONAME ; int RTestServer::GetServerThreadId(class TThreadId &) + ?NotifyCommand@RTestExecution@@QAEHAAV?$TPckg@W4TCommand@@@@AAV?$TBuf8@$0DC@@@AAVTRequestStatus@@H@Z @ 24 NONAME ; int RTestExecution::NotifyCommand(class TPckg &, class TBuf8<50> &, class TRequestStatus &, int) + ?GetUiEnvProxy@CTestThreadContainer@@QAEPAVCUiEnvProxy@@XZ @ 25 NONAME ; class CUiEnvProxy * CTestThreadContainer::GetUiEnvProxy(void) + ?NewL@CTestThreadContainerRunner@@SAPAV1@VTThreadId@@PAVCActiveScheduler@@@Z @ 26 NONAME ; class CTestThreadContainerRunner * CTestThreadContainerRunner::NewL(class TThreadId, class CActiveScheduler *) + ?NewL@CTestThreadContainerRunnerFactory@@SAPAV1@VTThreadId@@PAVCActiveScheduler@@PAVCUiEnvProxy@@@Z @ 27 NONAME ; class CTestThreadContainerRunnerFactory * CTestThreadContainerRunnerFactory::NewL(class TThreadId, class CActiveScheduler *, class CUiEnvProxy *) + ?StartNewServer@@YAHABV?$TBuf@$0BAA@@@AAV1@HVRSemaphore@@HPAVCTestThreadContainerRunnerFactory@@@Z @ 28 NONAME ; int StartNewServer(class TBuf<256> const &, class TBuf<256> &, int, class RSemaphore, int, class CTestThreadContainerRunnerFactory *) + ?UITesting@CTestThreadContainer@@QAEHXZ @ 29 NONAME ; int CTestThreadContainer::UITesting(void) + ?NotifyCommand2@RTestExecution@@QAEHAAV?$TPckg@W4TCommand@@@@AAVTDes8@@AAVTRequestStatus@@H@Z @ 30 NONAME ; int RTestExecution::NotifyCommand2(class TPckg &, class TDes8 &, class TRequestStatus &, int) + ?RunTestCase@RTestExecution@@QAEXAAV?$TPckg@VTFullTestResult@@@@ABVTDesC16@@AAVTRequestStatus@@@Z @ 31 NONAME ; void RTestExecution::RunTestCase(class TPckg &, class TDesC16 const &, class TRequestStatus &) + diff -r f5d4820de50d -r 9aaae25af322 stif/TestServer/eabi/StifTestServeru.def --- a/stif/TestServer/eabi/StifTestServeru.def Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestServer/eabi/StifTestServeru.def Mon Jun 14 11:37:33 2010 +0300 @@ -60,4 +60,5 @@ _ZN14RTestExecution14NotifyCommand2ER5TPckgI8TCommandER5TDes8R14TRequestStatusi @ 59 NONAME _ZTI11CCommandDef @ 60 NONAME ; ## _ZTV11CCommandDef @ 61 NONAME ; ## + _ZN14RTestExecution11RunTestCaseER5TPckgI15TFullTestResultERK7TDesC16R14TRequestStatus @ 62 NONAME diff -r f5d4820de50d -r 9aaae25af322 stif/TestServer/src/TestExecutionThread.cpp --- a/stif/TestServer/src/TestExecutionThread.cpp Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestServer/src/TestExecutionThread.cpp Mon Jun 14 11:37:33 2010 +0300 @@ -272,22 +272,7 @@ __TRACEI (KInit, ( _L("Loaded test module[%S]"), &moduleName ) ); } - // Verify the UID - TUid KUidTestModule = TUid::Uid ( 0x101FB3E7 ); - TUidType requiredUID( KDynamicLibraryUid, KSharedLibraryUid, KUidTestModule ); - - TUidType moduleUID = aModule.Type(); - if ( moduleUID != requiredUID ) - { - // New instance can't be created - RDebug::Print( ( _L("STIF TF: Test module has invalid UID. Aborting loading!") ) ); - __TRACEI (KError, ( CStifLogger::EError, _L("Test module has invalid UID. Aborting loading!"))); - tmpBuffer.Format(_L("Module [%S] has invalid UID"), &moduleName); - ErrorPrint( 1, tmpBuffer ); - ModuleContainer().OperationErrorResult() = KErrNotSupported; - return KErrNotSupported; - } - + // Get pointer to first exported function ModuleContainer().OperationText() = _L("1st EXPORTED function"); CTestInterfaceFactory libEntry; @@ -2156,7 +2141,7 @@ ------------------------------------------------------------------------------- */ -void CTestThreadContainer::IsServerAlive() +void CTestThreadContainer::IsServerAlive() const { if( iServerThread.ExitType() != EExitPending ) @@ -2187,7 +2172,7 @@ ------------------------------------------------------------------------------- */ -CTestExecution& CTestThreadContainer::TestExecution() +CTestExecution& CTestThreadContainer::TestExecution() const { IsServerAlive(); @@ -2199,7 +2184,32 @@ return *execution; }; + +/* +------------------------------------------------------------------------------- + + Class: CTestThreadContainer + + Method: GetTestCaseArguments + + Description: Get test case arguments + + Parameters: None + Return Values: test case arguments + + Errors/Exceptions: + + Status: Proposal + +------------------------------------------------------------------------------- +*/ +const TDesC& CTestThreadContainer::GetTestCaseArguments() const + { + return TestExecution().GetTestCaseArguments(); + } + + /* ------------------------------------------------------------------------------- diff -r f5d4820de50d -r 9aaae25af322 stif/TestServer/src/TestServerClient.cpp --- a/stif/TestServer/src/TestServerClient.cpp Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestServer/src/TestServerClient.cpp Mon Jun 14 11:37:33 2010 +0300 @@ -120,6 +120,15 @@ do { semName.Format(_L("%S%d"), &semaphoreName, x); + if (semName.Length() > KMaxKernelName) + { + // if the cfg file name is larger than maximum length of acceptable length of semaphore . + RDebug::Print(_L("Test Module name or Configuration File name is too long.")); + + semName.Close(); + return KErrBadName; + } + ret = startSemaphore.CreateGlobal(semName, 0); RDebug::Print(_L("RTestServer::Connect() Creating global semaphore [%S] with result [%d]"), &semName, ret); if(ret != KErrAlreadyExists) @@ -153,7 +162,7 @@ // Data to be passed to new process. It will contain module name and synchronization semaphore name separated with space. // I.e. it will be: "mymodule startupSemaphore0" RBuf data; - ret = data.Create(KMaxName); + ret = data.Create(KMaxFileName); if(ret != KErrNone) { RDebug::Print(_L("RTestServer::Connect() Could not create buffer for data to be passed to process [%d]"), ret); @@ -818,6 +827,36 @@ Class: RTestExecution + Method: RunTestCase + + Description: Runs a test case + + Parameters: TFullTestResultPckg& aResult :out: Case result + const TDesC& aTestCaseArgs: Test case arguments + TRequestStatus& aStatus :out: Request to be completed + + Return Values: None + + Errors/Exceptions: None + + Status: Approved + +------------------------------------------------------------------------------- +*/ +EXPORT_C void RTestExecution::RunTestCase( TFullTestResultPckg& aResult, + const TDesC& aTestCaseArgs, + TRequestStatus& aStatus + ) + { + TIpcArgs args( &aResult, &aTestCaseArgs, TIpcArgs::ENothing ); + SendReceive( ETestExecutionRunTestCase, args, aStatus ); + } + +/* +------------------------------------------------------------------------------- + + Class: RTestExecution + Method: NotifyProgress Description: Notify about test case progress, i.e test case prints. diff -r f5d4820de50d -r 9aaae25af322 stif/TestServer/src/Testexecution.cpp --- a/stif/TestServer/src/Testexecution.cpp Tue May 25 18:01:01 2010 +0300 +++ b/stif/TestServer/src/Testexecution.cpp Mon Jun 14 11:37:33 2010 +0300 @@ -191,7 +191,10 @@ // Delete name buffer delete iConfigNameBuffer; iConfigNameBuffer = NULL; - + + delete iTestCaseArgs; + iTestCaseArgs = NULL; + iStateEvents.ResetAndDestroy(); iStateEvents.Close(); @@ -338,15 +341,51 @@ __TRACE ( KInit, ( _L( "CTestExecution::RunTestCase in" ) ) ); + TInt ret = KErrNone; + // Store message to be completed when case is finished iTestExeMessage = aMessage; iFullResult.iStartTime.HomeTime(); + delete iTestCaseArgs; + iTestCaseArgs = NULL; + + TInt testCaseArgsLength = iTestExeMessage.GetDesLength( 1 ); + if ( ( testCaseArgsLength != KErrArgument ) && ( testCaseArgsLength != KErrBadDescriptor ) ) + { + iTestCaseArgs = HBufC::New( testCaseArgsLength ); + if ( iTestCaseArgs == NULL ) + { + _LIT(KRunError,"Can't allocate memory for test case arguments"); + __TRACE ( KError, ( CStifLogger::ERed, KRunError() ) ); + CompleteTestExecution( KErrNone, + TFullTestResult::ECaseException, + KErrNoMemory, + KErrGeneral, + KRunError ); + return KErrNone; + } + + TPtr testCaseArgsPtr( iTestCaseArgs->Des() ); + TRAP( ret, iTestExeMessage.Read( 1, testCaseArgsPtr ) ); + if ( ret != KErrNone ) + { + _LIT(KRunError,"Can't read test case arguments"); + __TRACE ( KError, ( CStifLogger::ERed, KRunError() ) ); + CompleteTestExecution( KErrNone, + TFullTestResult::ECaseException, + ret, + KErrGeneral, + KRunError ); + return KErrNone; + } + } + // Get a test module, which executes the test case. // The test module will be freed either when the test case // completes, or the test case is aborted. - TInt ret = iModuleSession->GetTestModule( iModuleContainer, iConfig ); + ret = iModuleSession->GetTestModule( iModuleContainer, iConfig ); if ( ret != KErrNone || iModuleContainer == NULL ) { _LIT(KRunError,"Can't get test module"); @@ -2117,6 +2156,34 @@ Class: CTestExecution + Method: GetTestCaseArguments + + Description: Get test case arguments + + Parameters: None + + Return Values: Test case arguments + + Errors/Exceptions: None + + Status: Proposal + +------------------------------------------------------------------------------- +*/ +const TDesC& CTestExecution::GetTestCaseArguments() const + { + if ( iTestCaseArgs != NULL ) + { + return *iTestCaseArgs; + } + return KNullDesC; + } + +/* +------------------------------------------------------------------------------- + + Class: CTestExecution + Method: CancelTestRequest Description: Cancel test execution request. diff -r f5d4820de50d -r 9aaae25af322 stif/group/ReleaseNote.txt --- a/stif/group/ReleaseNote.txt Tue May 25 18:01:01 2010 +0300 +++ b/stif/group/ReleaseNote.txt Mon Jun 14 11:37:33 2010 +0300 @@ -1,5 +1,5 @@ ======================================================================== -RELEASE NOTE FOR STIF - STIF_201020 (7.3.33) +RELEASE NOTE FOR STIF - STIF_201022 (7.3.34) SUPPORTING SERIES 60 3.0 -> ======================================================================== diff -r f5d4820de50d -r 9aaae25af322 stif/inc/TestServerModuleIf.h --- a/stif/inc/TestServerModuleIf.h Tue May 25 18:01:01 2010 +0300 +++ b/stif/inc/TestServerModuleIf.h Mon Jun 14 11:37:33 2010 +0300 @@ -415,6 +415,11 @@ */ TInt CancelCommandRequest(); + /** + * Get test case arguments. + */ + const TDesC& GetTestCaseArguments() const; + public: // Functions that are called from test thread /** @@ -470,6 +475,7 @@ */ TInt TestThreadMutexHandle() { return iTestThreadMutex.Handle(); }; + const TDesC& GetConfigFileName() const { return iConfig; } public: // Functions from base classes // None @@ -573,6 +579,8 @@ TInt iCaseNumber; // Case to be executed TPtr iConfig; // Configuration file name HBufC* iConfigNameBuffer; // HBuffer for configuration file; + HBufC* iTestCaseArgs; // HBuffer for test case arguments + RMessage2 iTestExeMessage; // Test execution message TTestState iThreadState; // Thread state diff -r f5d4820de50d -r 9aaae25af322 stif/inc/TestThreadContainer.h --- a/stif/inc/TestThreadContainer.h Tue May 25 18:01:01 2010 +0300 +++ b/stif/inc/TestThreadContainer.h Mon Jun 14 11:37:33 2010 +0300 @@ -222,9 +222,15 @@ virtual void DoNotifyCommand(TCommand aCommand, const TDesC8& aParamsPckg); /** + * Get test case execution arguments + */ + virtual const TDesC& GetTestCaseArguments() const; + + + /** * Obtain title of currently running test case. */ - virtual void GetTestCaseTitleL(TDes& aTestCaseTitle); + virtual void GetTestCaseTitleL(TDes& aTestCaseTitle); /** * Sets thread logger. @@ -308,7 +314,7 @@ /** * Check that server is alive. */ - void IsServerAlive(); + void IsServerAlive() const; /** * Exception handler @@ -360,13 +366,17 @@ /** * C++ default constructor. */ - CTestThreadContainer( CTestModuleContainer* aModuleContainer ); - + CTestThreadContainer( CTestModuleContainer* aModuleContainer ); + + /** + * Get module container. + */ + CTestModuleContainer& ModuleContainer(); + /** * Handles to parent. */ - CTestExecution& TestExecution(); - CTestModuleContainer& ModuleContainer(); + CTestExecution& TestExecution() const; public: // Data diff -r f5d4820de50d -r 9aaae25af322 stif/inc/version.h --- a/stif/inc/version.h Tue May 25 18:01:01 2010 +0300 +++ b/stif/inc/version.h Mon Jun 14 11:37:33 2010 +0300 @@ -20,9 +20,9 @@ #define STIF_MAJOR_VERSION 7 #define STIF_MINOR_VERSION 3 -#define STIF_BUILD_VERSION 33 +#define STIF_BUILD_VERSION 34 -#define STIF_REL_DATE "18th May 2010" +#define STIF_REL_DATE "1st June 2010" #define TO_UNICODE(text) _L(text) diff -r f5d4820de50d -r 9aaae25af322 stif/sis/Stif_31.sis Binary file stif/sis/Stif_31.sis has changed diff -r f5d4820de50d -r 9aaae25af322 stif/stif_plat/inc/StifTestModule.h --- a/stif/stif_plat/inc/StifTestModule.h Tue May 25 18:01:01 2010 +0300 +++ b/stif/stif_plat/inc/StifTestModule.h Mon Jun 14 11:37:33 2010 +0300 @@ -787,6 +787,11 @@ TInt Command(TCommand aCommand, const TDesC8& aParamsPckg); /** + * Get test case execution arguments + */ + IMPORT_C const TDesC& GetTestCaseArguments() const; + + /** * GetTestCaseTitleL function is used to obtain test case title. */ IMPORT_C void GetTestCaseTitleL(TDes& aTestCaseTitle); diff -r f5d4820de50d -r 9aaae25af322 stif/stif_plat/inc/TestEngineClient.h --- a/stif/stif_plat/inc/TestEngineClient.h Tue May 25 18:01:01 2010 +0300 +++ b/stif/stif_plat/inc/TestEngineClient.h Mon Jun 14 11:37:33 2010 +0300 @@ -376,6 +376,19 @@ TRequestStatus& aStatus ); /** + * RunTestCase is asynchronous method and it is completed when the test + * case is completed. Result of the test case is returned to + * aTestResult. The aTestResult is TFullTestResultPckg that is a + * packaged TFullTestResult. + * The aStatus will have the completion result of this function. If the + * test case could be run (despite of succesfully or not) the KErrNone + * is returned to aStatus. + */ + IMPORT_C void RunTestCase( TFullTestResultPckg& aTestResult, + const TDesC& aTestCaseArgs, + TRequestStatus& aStatus ); + + /** * Pause suspends the execution of the test case. The subsession where * the test case is run is suspended and thus the test case execution is * suspended. Test case execution can be later resumed by calling diff -r f5d4820de50d -r 9aaae25af322 stif/stif_plat/inc/TestServerClient.h --- a/stif/stif_plat/inc/TestServerClient.h Tue May 25 18:01:01 2010 +0300 +++ b/stif/stif_plat/inc/TestServerClient.h Mon Jun 14 11:37:33 2010 +0300 @@ -351,6 +351,16 @@ TRequestStatus& aStatus ); /** + * RunTestCase is used to execute the test case previously initialized by + * Open method. RunTestCase is asynchronous method and it is completed + * when the test case is completed. + * The result of the test case is returned to aStatus. + */ + IMPORT_C void RunTestCase( TFullTestResultPckg& aResult, + const TDesC& aTestCaseArgs, + TRequestStatus& aStatus ); + + /** * Pause suspends the execution of the test case. The subsession where * the test case is run will be suspended and thus the test case * execution is suspended. The test case execution can be later resumed