--- 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)
{
--- 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
--- 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;
--- 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
--- 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
--- 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.
--- 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;
}
--- 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
--- 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*)) )
--- /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<int> &,class TRequestStatus &)
+ ?ErrorNotification@RTestEngine@@QAEXAAV?$TPckg@VTErrorNotification@@@@AAVTRequestStatus@@@Z @ 14 NONAME ; public: void __thiscall RTestEngine::ErrorNotification(class TPckg<class TErrorNotification> &,class TRequestStatus &)
+ ?Event@RTestEngine@@QAEXAAV?$TPckg@VTEventIf@@@@AAVTRequestStatus@@@Z @ 15 NONAME ; public: void __thiscall RTestEngine::Event(class TPckg<class TEventIf> &,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<class TTestInfo> &)
+ ?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 TTestProgress> &,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<enum TStifCommand> &,class TPckg<int> &,class TRequestStatus &)
+ ?Open@RTestCase@@QAEHAAVRTestEngineServer@@ABV?$TPckg@VTTestInfo@@@@@Z @ 28 NONAME ; public: int __thiscall RTestCase::Open(class RTestEngineServer &,class TPckg<class TTestInfo> 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 TFullTestResult> &,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 TFullTestResult> &, class TDesC16 const &, class TRequestStatus &)
+
--- 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 ; #<VT>#
_ZN26CSTIFTestFrameworkSettings10GetFormatLEP18CStifSectionParser7TPtrC16RN11CStifLogger11TLoggerTypeERi @ 110 NONAME
_ZN11RTestEngine29AddTestCaseResultToTestReportERK9TTestInfoRK15TFullTestResulti @ 111 NONAME
+ _ZN9RTestCase11RunTestCaseER5TPckgI15TFullTestResultERK7TDesC16R14TRequestStatus @ 112 NONAME
--- 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;
--- 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;
--- 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.
--- /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<class TDesC16 const >, ...)
+ ?Log@CStifLogger@@QAAHHV?$TRefByValue@$$CBVTDesC8@@@@ZZ @ 56 NONAME ; int CStifLogger::Log(int, class TRefByValue<class TDesC8 const >, ...)
+ ?Log@CStifLogger@@QAAHV?$TRefByValue@$$CBVTDesC16@@@@ZZ @ 57 NONAME ; int CStifLogger::Log(class TRefByValue<class TDesC16 const >, ...)
+ ?Log@CStifLogger@@QAAHV?$TRefByValue@$$CBVTDesC8@@@@ZZ @ 58 NONAME ; int CStifLogger::Log(class TRefByValue<class TDesC8 const >, ...)
+ ?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<class TDesC16 const >, ...)
+ ?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
+
--- 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
--- 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
--- /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<int> &, class TRequestStatus &)
+ ?ErrorNotification@RTestModule@@QAEXAAV?$TPckg@VTErrorNotification@@@@AAVTRequestStatus@@@Z @ 9 NONAME ; void RTestModule::ErrorNotification(class TPckg<class TErrorNotification> &, class TRequestStatus &)
+ ?GetTestCases@RTestModule@@QAEHAAV?$CFixedFlatArray@VTTestCaseInfo@@@@@Z @ 10 NONAME ; int RTestModule::GetTestCases(class CFixedFlatArray<class TTestCaseInfo> &)
+ ?NotifyEvent@RTestExecution@@QAEHAAV?$TPckg@VTEventIf@@@@AAVTRequestStatus@@H@Z @ 11 NONAME ; int RTestExecution::NotifyEvent(class TPckg<class TEventIf> &, class TRequestStatus &, int)
+ ?NotifyProgress@RTestExecution@@QAEHAAV?$TPckg@VTTestProgress@@@@AAVTRequestStatus@@@Z @ 12 NONAME ; int RTestExecution::NotifyProgress(class TPckg<class TTestProgress> &, class TRequestStatus &)
+ ?NotifyRemoteCmd@RTestExecution@@QAEHAAV?$TPckg@W4TStifCommand@@@@AAV?$TPckg@H@@AAVTRequestStatus@@@Z @ 13 NONAME ; int RTestExecution::NotifyRemoteCmd(class TPckg<enum TStifCommand> &, class TPckg<int> &, 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 TFullTestResult> &, 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<enum TCommand> &, 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<enum TCommand> &, class TDes8 &, class TRequestStatus &, int)
+ ?RunTestCase@RTestExecution@@QAEXAAV?$TPckg@VTFullTestResult@@@@ABVTDesC16@@AAVTRequestStatus@@@Z @ 31 NONAME ; void RTestExecution::RunTestCase(class TPckg<class TFullTestResult> &, class TDesC16 const &, class TRequestStatus &)
+
--- 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 ; #<TI>#
_ZTV11CCommandDef @ 61 NONAME ; #<VT>#
+ _ZN14RTestExecution11RunTestCaseER5TPckgI15TFullTestResultERK7TDesC16R14TRequestStatus @ 62 NONAME
--- 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();
+ }
+
+
/*
-------------------------------------------------------------------------------
--- 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.
--- 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.
--- 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 ->
========================================================================
--- 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
--- 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
--- 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)
Binary file stif/sis/Stif_31.sis has changed
--- 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);
--- 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
--- 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