diff -r bf7481649c98 -r 7f25ef56562d windowing/windowserver/tcapability/TCapTest.CPP --- a/windowing/windowserver/tcapability/TCapTest.CPP Fri Jun 11 14:58:47 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,745 +0,0 @@ -// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// Automatically test the window server capabilities. -// -// - -#include -#include "W32STD.H" -#include "../SERVER/w32cmd.h" -#include -#include -#include - -typedef TInt (*TPanicFunction)(TInt aInt,TDes& capability,TInt aExternalGroupId); -LOCAL_D const TUint KPanicThreadHeapSize=0x2000; -#define EWindowGroupHandle 1234 -#define EWindowGroupHandle2 4567 -_LIT(KCAPABILITY_ALL,"CAPABILITY_ALL"); -_LIT(KCAPABILITY_NONE,"CAPABILITY_NONE"); -_LIT(KWRITEDATA_SWEVENT,"WRITEDATA+SWEVENT"); -_LIT(KWRITEDATA_POWERMGMT,"WRITEDATA+POWERMGMT"); -_LIT(KPOWERMGMT_SWEVENT,"POWERMGMT+SWEVENT"); -_LIT(KSetOrdinalPositionPri,"EWsWinOpSetOrdinalPositionPri Capability Check"); -_LIT(KSetOrdinalPositionErr,"EWsWinOpSetOrdinalPositionErr Capability Check"); -TLogMessageText LogMessageText; - -//Enum for indicating which capability is checked. -enum TTestCapability - { - EWriteDeviceData, - ESwEvent, - EPowerMgmt, - EDoNotTest, - ENoCapReq, - EEikSrvSID, - ESwEventPri, - ENoSwEventPri, - ENoSwEventPriSmallOrdinal, - ESwEventErr, - ENoSwEventErr, - ENoSwEventErrSmallOrdinal, - }; - -//Enum for test exit reasons -enum TTestState - { - EWsExitReasonBad, - EWsTestNext, - EWsTestFinished, - }; - - -TTestCapability gTheTestCapability; -TInt gTestState=KErrNone; - - -//Panics if EWsExitReasonBad -enum TAutoPanics - { - EAutoPanicPanicFailed, - }; - -//Thread function structure -struct SPanicParams - { - TInt num; - TPanicFunction func; - TBuf<256> capability; - TInt externalGroupId; - }; - -class CTestBase - { -public: - CTestBase(); - ~CTestBase(); - void ConstructL(const TDes* aCapabilityTest); - TInt TestWsPanicL(TPanicFunction aFunction, TInt aInt, const TDes& aCommandLine); - void UpdateLogsL(); -private : - TInt TestPanicL(SPanicParams* aPtr); - TInt LaunchPanicThread(RThread& aThread, SPanicParams* aPtr); - void Test(TInt aCondition); -private : - TInt iThreadNumber; - RWsSession iWs; - TBuf<256> iCapabilityTest; - TInt iTestCount; - TInt iTestPass; - }; - -//RWsSession derived class to test the EWservMessShutdown message -class RShellWsSession : public RWsSession - { -public: - void ShutDown(); - }; - -void RShellWsSession::ShutDown() - { - SendReceive(EWservMessShutdown,TIpcArgs(EWservShutdownCheck)); - } - -LOCAL_C TInt PanicThreadFunc(TAny* aPtr) - { - CTrapCleanup* CleanUpStack=CTrapCleanup::New(); - SPanicParams* ptr=(SPanicParams*)aPtr; - TInt ret; - TRAP(ret,ret=(*ptr->func)(ptr->num,ptr->capability,ptr->externalGroupId)); - delete CleanUpStack; - if (ret==EWsExitReasonBad) - { - User::Panic(_L("Auto"),EAutoPanicPanicFailed); - } - return(ret); - } - -CTestBase::CTestBase() - { - } - -CTestBase::~CTestBase() - { - iWs.Close(); - } - -void CTestBase::ConstructL(const TDes* aCapabilityTest) - { - iTestCount=iTestPass=0; - iWs.Connect(); - TLex lex(*aCapabilityTest); - TPtrC capability = lex.NextToken(); - iCapabilityTest.Append(capability); - } - -TInt CTestBase::LaunchPanicThread(RThread& aThread, SPanicParams* aPtr) - { - TBuf<32> threadName; - _LIT(KPanicThread, "AutoPanicThread%d"); - threadName.AppendFormat(KPanicThread,iThreadNumber++); - return(aThread.Create(threadName,PanicThreadFunc,KDefaultStackSize,KPanicThreadHeapSize,KPanicThreadHeapSize,aPtr,EOwnerThread)); - } - -TInt CTestBase::TestPanicL(SPanicParams* aPtr) - { - RThread thread; - TRequestStatus stat; - TInt err=LaunchPanicThread(thread, aPtr); - if (err==KErrAlreadyExists) - { - // wait for kernel to clear up old threads - // and have several attempts at starting the thread - // if unsuccessful the first time - for (TInt i=0;i<3;i++) - { - User::After(TTimeIntervalMicroSeconds32(100000)); //0.1 secs - err=LaunchPanicThread(thread, aPtr); - if (err!=KErrAlreadyExists) - { - break; - } - } - } - User::LeaveIfError(err); - thread.Logon(stat); - User::SetJustInTime(EFalse); - thread.Resume(); - User::WaitForRequest(stat); - User::SetJustInTime(ETrue); - TInt threadExit=thread.ExitReason(); - if (threadExit!=EWsTestFinished) - { - if (gTheTestCapability==ENoCapReq) - { - Test(threadExit==KErrNone); - } - else if(gTheTestCapability==EEikSrvSID) - { - Test(threadExit==KErrPermissionDenied); - } - else if(!iCapabilityTest.Compare(KCAPABILITY_ALL)) - { - if(gTheTestCapability!=EDoNotTest) - { - iTestCount++; - if(gTheTestCapability==ESwEventPri) - { - Test(threadExit==KPasswordWindowGroupPriority); - } - else - { - Test(threadExit==KErrNone); - } - } - } - else if(!iCapabilityTest.Compare(KCAPABILITY_NONE)) - { - if(gTheTestCapability!=EDoNotTest) - { - iTestCount++; - if((gTheTestCapability==ENoSwEventPriSmallOrdinal)||(gTheTestCapability==ENoSwEventPri)) - { - Test(threadExit==KPasswordWindowGroupPriority-1); - } - else if(gTheTestCapability==ENoSwEventErrSmallOrdinal) - { - Test(threadExit==KErrNone); - } - else if(gTheTestCapability==ENoSwEventErr) - { - Test(threadExit==KErrPermissionDenied); - } - else - { - Test((threadExit==EWservPanicPermissionDenied)||(threadExit==KErrPermissionDenied)); - } - } - } - else if(!iCapabilityTest.Compare(KWRITEDATA_SWEVENT)) - { - if(gTheTestCapability==EWriteDeviceData || gTheTestCapability==ESwEvent) - { - iTestCount++; - Test(threadExit==KErrNone); - } - if(gTheTestCapability==EPowerMgmt) - { - iTestCount++; - Test((threadExit==EWservPanicPermissionDenied)||(threadExit==KErrPermissionDenied)); - } - } - else if(!iCapabilityTest.Compare(KWRITEDATA_POWERMGMT)) - { - if(gTheTestCapability==EWriteDeviceData || gTheTestCapability==EPowerMgmt) - { - iTestCount++; - Test(threadExit==KErrNone); - } - if(gTheTestCapability==ESwEvent) - { - iTestCount++; - Test((threadExit==EWservPanicPermissionDenied)||(threadExit==KErrPermissionDenied)); - } - } - else if(!iCapabilityTest.Compare(KPOWERMGMT_SWEVENT)) - { - if(gTheTestCapability==EPowerMgmt || gTheTestCapability==ESwEvent) - { - iTestCount++; - Test(threadExit==KErrNone); - } - if(gTheTestCapability==EWriteDeviceData) - { - iTestCount++; - Test((threadExit==EWservPanicPermissionDenied)||(threadExit==KErrPermissionDenied)); - } - } - } - thread.Close(); - return(threadExit); - } - -TInt CTestBase::TestWsPanicL(TPanicFunction aFunction,TInt aTestNo, const TDes& aCommandLine) - { - TLex lex(aCommandLine); - TPtrC capability = lex.NextToken(); - TPtrC idstr = lex.NextToken(); - lex = idstr; - TInt id = 0; - lex.Val(id); - - SPanicParams params; - params.num=aTestNo; - params.func=aFunction; - params.capability.Copy(capability); - params.externalGroupId = id; - return TestPanicL(¶ms); - } - -void CTestBase::Test(TInt aCondition) - { - if(!aCondition) - { - TLogMessageText buf; - _LIT(Fail,"AUTO Failed in Capability Test : "); - buf.Append(Fail); - buf.Append(iCapabilityTest); - iWs.LogMessage(buf); - iWs.Flush(); - } - else - { - iTestPass++; - } - } - -void CTestBase::UpdateLogsL() - { - TBuf<256> testResult; - RFs fileSession; - RFile resultFile; - User::LeaveIfError(fileSession.Connect()); - CleanupClosePushL(fileSession); - resultFile.Replace(fileSession,_L("C:\\DATA\\TestResult.Dat"),EFileWrite); - CleanupClosePushL(resultFile); - TFileText fileText; - fileText.Set(resultFile); - testResult.Num(iTestCount); - fileText.Write(testResult); - testResult.Num(iTestPass); - fileText.Write(testResult); - resultFile.Close(); - fileSession.Close(); - CleanupStack::PopAndDestroy(&resultFile); - CleanupStack::PopAndDestroy(&fileSession); - } - -TInt TestCapability(TInt aTest, TDes& aCapability, TInt aExternalGroupId) - { - _LIT(KDllName,"CLICK"); - RWsSession ws; - ws.Connect(); - CleanupClosePushL(ws); - RWindowGroup gr1(ws); - RWindowGroup gr2(ws); - gr1.Construct(EWindowGroupHandle,EFalse); - gr2.Construct(EWindowGroupHandle2,EFalse); - CleanupClosePushL(gr1); - CleanupClosePushL(gr2); - TWsEvent event; - RSoundPlugIn click1(ws); - CWsScreenDevice *screenDevice; - TRawEvent rawEvent; - CPalette* defPalette=CPalette::NewDefaultL(EColor256); - TInt ret=KErrNone; - switch(aTest) - { - case 0: - // ws.LogMessage(_L("EWsClOpSetKeyboardRepeatRate Capability Check")); - gTheTestCapability=EWriteDeviceData; - ret=ws.SetKeyboardRepeatRate(TTimeIntervalMicroSeconds32(1000000), TTimeIntervalMicroSeconds32(500000)); - ws.Flush(); - break; - case 1: - // ws.LogMessage(_L("EWsClOpSetDoubleClick Capability Check")); - gTheTestCapability=EWriteDeviceData; - ret=ws.SetDoubleClick(TTimeIntervalMicroSeconds32(900000),10); - ws.Flush(); - break; - case 2: - // ws.LogMessage(_L("EWsClOpSendEventToWindowGroup (external group) Capability Check")); - gTheTestCapability=ESwEvent; - event.SetType(EEventModifiersChanged); - ret=ws.SendEventToWindowGroup(aExternalGroupId,event); - break; - case 3: - // ws.LogMessage(_L("EWsClOpSendEventToAllWindowGroup Capability Check")); - gTheTestCapability=ESwEvent; - event.SetType(EEventModifiersChanged); - ret=ws.SendEventToAllWindowGroups(event); - break; - case 4: - // ws.LogMessage(_L("EWsClOpSendEventToAllWindowGroupPriority Capability Check")); - gTheTestCapability=ESwEvent; - event.SetType(EEventModifiersChanged); - gr1.SetOrdinalPosition(0,1); - ret=ws.SendEventToAllWindowGroups(gr1.OrdinalPriority(),event); - break; - case 5: - // ws.LogMessage(_L("EWsClOpSendEventToOneWindowGroupPerClient Capability Check")); - gTheTestCapability=ESwEvent; - event.SetType(EEventModifiersChanged); - ret=ws.SendEventToOneWindowGroupsPerClient(event); - break; - case 6: - // ws.LogMessage(_L("EWsClOpSendMessageToWindowGroup (external group) Capability Check")); - gTheTestCapability=ESwEvent; - ret=ws.SendMessageToWindowGroup(aExternalGroupId,TUid::Uid(123),_L8("SomeParams")); - break; - case 7: - // ws.LogMessage(_L("EWsClOpClaimSystemPointerCursorList Capability Check")); - gTheTestCapability=EWriteDeviceData; - ret=ws.ClaimSystemPointerCursorList(); - //This may return KErrInUse if succeeds. - if(ret==KErrInUse) - { - ret=KErrNone; - } - break; - case 8: - // ws.LogMessage(_L("EWsClOpSetClientCursorMode Capability Check")); - gTheTestCapability=EWriteDeviceData; - ret=ws.SetClientCursorMode(EPointerCursorNone); - ws.Flush(); - break; - case 9: - //Check only if capability is not defined,since the windowgroup is not focused. - if(aCapability.Compare(KCAPABILITY_ALL)&&aCapability.Compare(KWRITEDATA_POWERMGMT)&&aCapability.Compare(KWRITEDATA_SWEVENT)) - { - // ws.LogMessage(_L("EWsClOpSetPointerCursorPosition Capability Check")); - gTheTestCapability=EWriteDeviceData; - ret=ws.SetPointerCursorPosition(TPoint(60,20)); - ws.Flush(); - } - else - { - gTheTestCapability=EDoNotTest; - } - break; - case 10: - // ws.LogMessage(_L("EWsClOpSetModifierState Capability Check")); - gTheTestCapability=EWriteDeviceData; - ret=ws.SetModifierState(EModifierCapsLock,ETurnOnModifier); - ret=ws.SetModifierState(EModifierCapsLock,ETurnOffModifier); - ws.Flush(); - break; - case 11: - { - // ws.LogMessage(_L("EWsClOpRawEvent Capability Check")); - gTheTestCapability=ESwEvent; - rawEvent.Set(TRawEvent::EActive); - ws.SimulateRawEvent(rawEvent); - ws.Flush(); - } - break; - case 12: - { - // ws.LogMessage(_L("EWsClOpKeyEvent Capability Check")); - gTheTestCapability=ESwEvent; - TKeyEvent keyEvent; - keyEvent.iCode='J'; - keyEvent.iScanCode=0; - keyEvent.iModifiers=EModifierAutorepeatable; - keyEvent.iRepeats=0; - ws.SimulateKeyEvent(keyEvent); - ws.Flush(); - } - break; - case 13: - // ws.LogMessage(_L("EWsClOpSendOffEventsToShell Capability Check")); - gTheTestCapability=EPowerMgmt; - ret=ws.RequestOffEvents(EFalse); - break; - case 14: - // ws.LogMessage(_L("EWsClOpSetFaded Capability Check")); - gTheTestCapability=EWriteDeviceData; - ret=ws.SetSystemFaded(EFalse); - break; - case 15: - //Since there is some problem in running the EWsClOpNoFlickerFree - //code this test is not run if WriteDeviceData capability is defined. - // ws.LogMessage(_L("EWsClOpNoFlickerFree Capability Check")); - if(aCapability.Compare(KCAPABILITY_ALL)&&aCapability.Compare(KWRITEDATA_POWERMGMT)&&aCapability.Compare(KWRITEDATA_SWEVENT)) - { - CWsScreenDevice* screen = new (ELeave) CWsScreenDevice(ws); - gTheTestCapability=EWriteDeviceData; - TInt err; - if ((err=screen->Construct(0))!=KErrNone) - { - delete screen; - User::Leave(err); - } - ws.TestWrite(ws.WsHandle(), EWsClOpNoFlickerFree, NULL, 0); - ws.Flush(); - delete screen; - } - else - { - gTheTestCapability=EDoNotTest; - } - break; - case 16: - // ws.LogMessage(_L("EWsClOpSetFocusScreen Capability Check")); - gTheTestCapability=EWriteDeviceData; - ret=ws.SetFocusScreen(0); - break; - case 17: - { - //Check only if capability is not defined. Otherwise it will shut down the shell. - if(aCapability.Compare(KCAPABILITY_ALL)&&aCapability.Compare(KWRITEDATA_POWERMGMT)&&aCapability.Compare(KPOWERMGMT_SWEVENT)) - { - // ws.LogMessage(_L("EWservMessShutdown Capability Check")); - gTheTestCapability=EPowerMgmt; - RShellWsSession wsShell; - wsShell.Connect(); - wsShell.ShutDown(); - } - else - { - gTheTestCapability=EDoNotTest; - } - break; - } - case 18: - // ws.LogMessage(_L("EWsWinOpCaptureKey Capability Check")); - gTheTestCapability=ESwEvent; - ret=gr2.CaptureKey('a',EModifierFunc,EModifierFunc); - //If the function succeeds capability check,the ret value is handle identifying the capture key. - if(ret>0) - { - ret=KErrNone; - } - break; - case 19: - // ws.LogMessage(_L("EWsWinOpCaptureKeyUpsAndDowns Capability Check")); - gTheTestCapability=ESwEvent; - ret=gr2.CaptureKeyUpAndDowns('a',0,0); - //If the function succeeds capability check,the ret value is handle identifying the capture key. - if(ret>0) - { - ret=KErrNone; - } - break; - case 20: - // ws.LogMessage(_L("EWsWinOpCaptureLongKey Capability Check")); - gTheTestCapability=ESwEvent; - ret=gr2.CaptureLongKey(EKeyEscape,'e',0,0,2,ELongCaptureNormal|ELongCaptureRepeatEvents); - //If the function succeeds capability check,the ret value is handle identifying the capture key. - if(ret>0) - { - ret=KErrNone; - } - break; - case 21: - // ws.LogMessage(_L("EWsClickOpLoad Capability Check")); - gTheTestCapability=EWriteDeviceData; - click1.Construct(); - CleanupClosePushL(click1); - ret=click1.Load(KDllName); - CleanupStack::PopAndDestroy(&click1); - break; - case 22: - // ws.LogMessage(_L("EWsClickOpUnLoad Capability Check")); - gTheTestCapability=EWriteDeviceData; - click1.Construct(); - ret=click1.Unload(); - break; - case 23: - // ws.LogMessage(_L("EWsSdOpSetScreenMode Capability Check")); - gTheTestCapability=EWriteDeviceData; - screenDevice=new(ELeave) CWsScreenDevice(ws); - CleanupStack::PushL(screenDevice); - screenDevice->Construct(0); - screenDevice->SetScreenMode(0); - CleanupStack::PopAndDestroy(screenDevice); - break; - case 24: - // ws.LogMessage(_L("EWsSdOpSetScreenModeEnforcement Capability Check")); - gTheTestCapability=EWriteDeviceData; - screenDevice=new(ELeave) CWsScreenDevice(ws); - CleanupStack::PushL(screenDevice); - screenDevice->Construct(0); - screenDevice->SetScreenModeEnforcement(ESizeEnforcementNone); - ws.Flush(); - CleanupStack::PopAndDestroy(screenDevice); - break; - case 25: - { - // ws.LogMessage(_L("EWsSdOpSetPalette Capability Check")); - gTheTestCapability=EWriteDeviceData; - screenDevice=new(ELeave) CWsScreenDevice(ws); - CleanupStack::PushL(screenDevice); - screenDevice->Construct(0); - ret=screenDevice->SetCustomPalette(defPalette); - //Returns KErrNotSupported if succeeds capability check. - if(ret==KErrNotSupported) - { - ret=KErrNone; - } - CleanupStack::PopAndDestroy(screenDevice); - } - break; - case 26: - { - //Checking the capability for SetHotKeys - // ws.LogMessage(_L("EWsClOpSetHotKey Capability Check")); - gTheTestCapability=ESwEvent; - ret=ws.SetHotKey(EHotKeyEnableLogging,'e',EModifierFunc|EModifierCtrl|EModifierShift,0); - ws.Flush(); - } - break; - case 27: - { - //Checking the capability for ClearHotKeys - // ws.LogMessage(_L("EWsClOpClearHotKeys Capability Check")); - gTheTestCapability=ESwEvent; - ret=ws.ClearHotKeys(EHotKeyEnableLogging); - ws.Flush(); - } - break; - case 28: - // ws.LogMessage(_L("EWsClOpSendEventToWindowGroup (own group) Capability Check")); - gTheTestCapability=ENoCapReq; - event.SetType(EEventModifiersChanged); - ret=ws.SendEventToWindowGroup(gr1.Identifier(),event); - break; - case 29: - // ws.LogMessage(_L("EWsClOpSendMessageToWindowGroup (own group) Capability Check")); - gTheTestCapability=ENoCapReq; - ret=ws.SendMessageToWindowGroup(gr1.Identifier(),TUid::Uid(123),_L8("SomeParams")); - break; - case 30: - // ws.LogMessage(_L("EWsClOpSetBackLight Capability Check")); - gTheTestCapability=EEikSrvSID; - screenDevice=new(ELeave) CWsScreenDevice(ws); - CleanupStack::PushL(screenDevice); - screenDevice->Construct(0); - ret=screenDevice->SetBackLight(ETrue); //Always returns KErrPermissionDenied. - CleanupStack::PopAndDestroy(screenDevice); - break; - case 31: - { - TBool test=EFalse; - if(!aCapability.Compare(KCAPABILITY_ALL)) - { - gTheTestCapability=ESwEventPri; - test=ETrue; - } - else if(!aCapability.Compare(KCAPABILITY_NONE)) - { - gTheTestCapability=ENoSwEventPri; - test=ETrue; - } - else - { - gTheTestCapability=EDoNotTest; - } - if(test) - { - LogMessageText.Format(KSetOrdinalPositionPri); - ws.LogMessage(LogMessageText); - gr1.SetOrdinalPosition(0,KPasswordWindowGroupPriority); - ret=ws.GetWindowGroupOrdinalPriority(gr1.Identifier()); - } - } - break; - case 32: - if(!aCapability.Compare(KCAPABILITY_NONE)) - { - LogMessageText.Format(KSetOrdinalPositionPri); - ws.LogMessage(LogMessageText); - gTheTestCapability=ENoSwEventPriSmallOrdinal; - gr1.SetOrdinalPosition(0,KPasswordWindowGroupPriority-1); - ret=ws.GetWindowGroupOrdinalPriority(gr1.Identifier()); - } - else - { - gTheTestCapability=EDoNotTest; - } - break; - case 33: - { - TBool test=EFalse; - if(!aCapability.Compare(KCAPABILITY_ALL)) - { - gTheTestCapability=ESwEventErr; - test=ETrue; - } - else if(!aCapability.Compare(KCAPABILITY_NONE)) - { - gTheTestCapability=ENoSwEventErr; - test=ETrue; - } - else - { - gTheTestCapability=EDoNotTest; - } - if(test) - { - LogMessageText.Format(KSetOrdinalPositionErr); - ws.LogMessage(LogMessageText); - ret=gr1.SetOrdinalPositionErr(0,KPasswordWindowGroupPriority); - } - } - break; - case 34: - if(!aCapability.Compare(KCAPABILITY_NONE)) - { - LogMessageText.Format(KSetOrdinalPositionErr); - ws.LogMessage(LogMessageText); - gTheTestCapability=ENoSwEventErrSmallOrdinal; - ret=gr1.SetOrdinalPositionErr(0,KPasswordWindowGroupPriority-1); - } - else - { - gTheTestCapability=EDoNotTest; - } - break; - case 35: - // EWsClOpSetCloseProximityThresholds Capability Check - gTheTestCapability=EWriteDeviceData; - ret=ws.SetCloseProximityThresholds(-20, -50); - ws.SetCloseProximityThresholds(KMaxTInt, KMinTInt); - break; - case 36: - // EWsClOpSetHighPressureThresholds Capability Check - gTheTestCapability=EWriteDeviceData; - ret=ws.SetHighPressureThresholds(4000, 2000); - ws.SetHighPressureThresholds(KMaxTInt, KMinTInt); - break; - default: - ret=gTestState=EWsTestFinished; - } - CleanupStack::PopAndDestroy(&gr2); - CleanupStack::PopAndDestroy(&gr1); - CleanupStack::PopAndDestroy(&ws); - return ret; - } - -void MainL() - { - TBuf<256> commandLine; - User::CommandLine(commandLine); - CTestBase testBase; - testBase.ConstructL(&commandLine); - TInt ii=0; - while(gTestState!=EWsTestFinished) - testBase.TestWsPanicL(&TestCapability,ii++,commandLine) ; -// testBase.UpdateLogsL(); - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - CTrapCleanup* cleanUpStack=CTrapCleanup::New(); - if(cleanUpStack==NULL) - { - return KErrNoMemory; - } - TRAP_IGNORE(MainL()) - delete cleanUpStack; - __UHEAP_MARKEND; - return(KErrNone); - }