diff -r a151135b0cf9 -r aa2539c91954 debugsrv/runmodedebug/rmdebug_test/rm_debug/basic_tests/t_rmdebug2.h --- a/debugsrv/runmodedebug/rmdebug_test/rm_debug/basic_tests/t_rmdebug2.h Wed Sep 29 17:45:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,202 +0,0 @@ -// Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of the License "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: -// Definitions for the run mode debug tests -// -// - -/** - @file - @internalTechnology - @released -*/ - -#ifndef RMDEBUG_H -#define RMDEBUG_H - -#include "t_rmdebug_app.h" -#include "r_user_low_memory_security_svr_session.h" -#include "r_kernel_low_memory_security_svr_session.h" - - -class CRunModeAgent; - -// Create a pointer to function type -typedef void (CRunModeAgent::*testFunction)(); - -class TFunctionData - { -public: - testFunction iFunctionPtr; - TBuf<40> iFunctionName; - }; - -//number of test functions that we have -const TInt KMaxTests = 31; - -// -// class CRunModeAgent -// -// The basic run mode agent. -// -class CRunModeAgent : public CBase - { -public: - static CRunModeAgent* NewL(); - ~CRunModeAgent(); - void ClientAppL(); - -private: - CRunModeAgent(); - void ConstructL(); - void SetupAndAttachToDSS(); - - TInt TestStartup(); - TInt TestShutdown(); - - void TestGetExecutablesList(); - void TestGetProcessList(); - void TestGetThreadList(); - void TestGetCodeSegsList(); - void TestGetXipLibrariesList(); - void TestGetListInvalidData(); - - TBool DoTestGetThreadList(const TBool aShouldPass, const Debug::TListScope aListScope, const TUint64 aTargetId=0); - void DoTestGetCodeSegsList(const TBool aShouldPass, const Debug::TListScope aListScope, const TUint64 aTargetId=0); - - void DoGetList(const Debug::TListId aListId, const Debug::TListScope aListScope, RBuf8& aBuffer, TUint32& aSize, const TUint64 aTargetId=0); - - void TestMemoryAccess(); - void TestSuspendResume(); - void TestBreakPoints(); - void TestConsecutiveBreakPoints(); - void TestModifyBreak(); - void DoTestModifyBreak(TBool aThreadSpecific); - void TestBreakInfo(); - void DoTestBreakInfo(TBool aThreadSpecific); - void TestRunToBreak(); - void DoTestRunToBreak(TBool aThreadSpecific); - void TestBreakPointsInLoop(); - void DoTestBreakPointsInLoop(TBool aThreadSpecific); - void TestRegisterAccess(); - void TestAttachExecutable(); - void TestDebugFunctionality(); - void TestStep(); - void DoTestStep(TBool aThreadSpecific); - void TestDriverSecurity(); - void TestSecurity(); - void TestEvents(); - void TestEventsForExternalProcess(); - void TestDemandPaging(); - void TestTraceSecurity(); - void TestDllUsage(); - void TestKillProcess(); - void TestProcessBreakPoints(); - void TestMultipleTraceEvents(); - void TestAddRemoveProcessEvents(); - void TestProcessKillBreakpoint(); - void DoTestProcessKillBreakpoint(); - void TestAttachToAll(); - void ResetAttachToAll(RThread& aTestThread, TRequestStatus* aFirstSessionStat=NULL, Debug::RSecuritySvrSession* aSecondSession=NULL); - void LaunchDebugProcessAndSetBreakpoint(RProcess& aResultProcess, TThreadId& aResultThread); - void TestResumeBreakpointsRepeatedly(); - - //crash flash test functions - void TestCrashFlash(); - - TInt GetFlag(const TDes8 &aFlags, const TUint aOffset, Debug::TRegisterFlag &aFlagValue) const; - - void ReportPerformance(void); - - // helper functions - void HelpTestSecurityAttachDetachExecutable(const TDesC& aProcessName, TBool aExpectSuccess); - - TInt HelpTestStepSetBreak(Debug::TBreakId& aBreakId, TThreadId aThreadId, const TUint32 aBreakAddress, Debug::TArchitectureMode aMode, TBool aThreadSpecific=ETrue, TProcessId aProcessId=0); - TInt HelpTestStepClearBreak(const Debug::TBreakId aBreakId, const TThreadId aThreadId, TBool aThreadSpecific); - TInt HelpTestStepWaitForBreak(const TDesC& aProcessName, Debug::TEventInfo& aEventInfo); - TInt HelpTestStepReadPC(TThreadId aThreadId, TUint32& aPC); - TInt HelpTestStep(TThreadId aThreadId, TUint32 aStartAddress, TUint32 aEndAddress, Debug::TArchitectureMode aMode, TUint aNumSteps, TBool aThreadSpecific=ETrue, TProcessId=0); - - TInt HelpTicksPerSecond(void); - - // helper functions - void HelpStartTestTimer(void) { iStartTick = User::NTickCount(); iStopTick = 0; }; - void HelpStopTestTimer(void) { iStopTick = User::NTickCount(); }; - TInt HelpGetTestTicks(void) { return (iStopTick - iStartTick); }; - TInt SwitchTestFunction(TTestFunction aTestFunction, const TBool aResume = ETrue); - TInt LaunchProcess(RProcess& aProcess, const TDesC& aFileName, TDebugFunctionType aFunctionType, TUint32 aDelay=0, TUint32 aExtraThreads=0); - Debug::TTagHeader* GetTagHdr(const TDesC8& aDebugFunctionalityBlock, const Debug::TTagHeaderId aTagHdrId) const; - Debug::TTag* GetTag(const Debug::TTagHeader* aTagHdr, const TInt aElement) const; - Debug::TTag GetTag(const Debug::TTagHeaderId aTagHdrId, const TInt aElement); - TBool ProcessExists(const TProcessId aProcessId); - TBool ThreadExistsForProcess(const TThreadId aThreadId, const TProcessId aProcessId); - TBool ListingSupported(const Debug::TListId aListId, const Debug::TListScope aListScope); - void TestEventsWithExtraThreads(Debug::TKernelEventAction aActionMain, Debug::TKernelEventAction aActionExtra, TUint32 aExtraThreads); - void FillArray(); - void PrintUsage(); - void PrintVersion(); - - enum TTestMode - { - //run all the tests - EModeAll = 1<<0, - //run the specified tests in reverse order - EModeReverse = 1<<1, - //print out help - EModeHelp = 1<<2, - //print out help - EModeVersion = 1<<3 - }; - - void RunTest(TInt aTestNumber); - void ParseCommandLineL(TUint32& aMode, RArray& aTests); - - TBool ProcessExists(const TDesC& aProcessName); - static void TimedWait(TRequestStatus& aStatus, TInt aTimeoutInMs, TInt aLineNumber); - - -private: - - TFunctionData iTestArray[KMaxTests]; -#if defined(KERNEL_OOM_TESTING) - RKernelLowMemorySecuritySvrSession iServSession; -#elif defined (USER_OOM_TESTING) - RUserLowMemorySecuritySvrSession iServSession; -#else - Debug::RSecuritySvrSession iServSession; -#endif - RThread iDebugThread; - - //Set by test thread, used to check its run state - RProperty iRunCountSubscribe; - - // Used for timeouts when checking the run state - RTimer iTimer; - - RProcess iDSSProcess; - TThreadId iThreadID; - TFileName iFileName; - - // Performance data - TInt iMemoryReadKbytesPerSecond; - TInt iMemoryWriteKbytesPerSecond; - TInt iBreakpointsPerSecond; - TInt iMaxBreakpoints; - TInt iStepsPerSecond; - - // Timing information - TInt iStartTick; - TInt iStopTick; - }; - -#endif // RMDEBUG_H