diff -r c1f20ce4abcf -r 3e88ff8f41d5 kerneltest/e32test/power/d_powermisctest.cpp --- a/kerneltest/e32test/power/d_powermisctest.cpp Tue Aug 31 16:34:26 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,190 +0,0 @@ -// Copyright (c) 2006-2009 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: -// e32test\power\d_powermisctest.cpp -// -// - -#include -#include -#include "d_powermisctest.h" -#include -#include "smpidlehandler.h" - -#ifdef __SMP__ -NONSHARABLE_CLASS(DTest_SMPIdleHandler) : public DSMPIdleHandler - { -public: - DTest_SMPIdleHandler() : DSMPIdleHandler() {}; - TInt SelfTest() - { - // call unused functions to ensure it is covered in tests - ResetSyncPoints(); - return DoEnterIdle(0,0,NULL); - } - TBool GetLowPowerMode(TInt aIdleTime, TInt &aLowPowerMode) {return ETrue;} - TBool EnterLowPowerMode(TInt aMode, TInt aCpuMask, TBool aLastCpu) {return ETrue;} - }; -#endif - -class DTestFactory : public DLogicalDevice -// -// Test LDD factory -// - { -public: - DTestFactory(); - virtual TInt Install(); - virtual void GetCaps(TDes8& aDes) const; - virtual TInt Create(DLogicalChannelBase*& aChannel); - }; - -class DTest1 : public DLogicalChannelBase -// -// Test logical channel -// - { -public: - virtual ~DTest1(); -protected: - virtual TInt DoCreate(TInt aUnit, const TDesC8* anInfo, const TVersion& aVer); - virtual TInt Request(TInt aReqNo, TAny* a1, TAny* a2); - -private: - TInt DoTest(); -#ifdef __SMP__ -private: - DTest_SMPIdleHandler* iH; -#endif - }; - - - -DECLARE_STANDARD_LDD() - { - return new DTestFactory; - } - -// -// Constructor -// -DTestFactory::DTestFactory() - { - - } - -TInt DTestFactory::Create(DLogicalChannelBase*& aChannel) - { -// -// Create new channel -// - aChannel=new DTest1; - return aChannel?KErrNone:KErrNoMemory; - } - -TInt DTestFactory::Install() -// -// Install the LDD - overriding pure virtual -// - { - return SetName(&KLddName); - } - -void DTestFactory::GetCaps(TDes8& /*aDes*/) const -// -// Get capabilities - overriding pure virtual -// - { - } - -TInt DTest1::DoCreate(TInt /*aUnit*/, const TDesC8* /*aInfo*/, const TVersion& /*aVer*/) -// -// Create channel -// - { -#ifdef __SMP__ - iH = new DTest_SMPIdleHandler(); - TIdleSupport(); -#endif - return KErrNone; - } - -DTest1::~DTest1() -// -// Destructor -// - { -#ifdef __SMP__ - delete iH; -#endif - } - -TInt DTest1::Request(TInt aReqNo, TAny* /*a1*/, TAny* /*a2*/) - { - - // 'Control' functions... - switch(aReqNo) - { - // DoControl - case RLddTest1::ECONTROL_TEST: - DoTest(); - break; - } - - return KErrNone; - } - -TInt DTest1::DoTest() - { -#ifdef __SMP__ - TInt r = KErrNone; - - // smp idle handler self tests - Kern::Printf("smp idle handler self test"); - iH->SelfTest(); - - // Test GetTimerCount using supplied timer - Kern::Printf("test GetTimerCount using supplied timer"); - TUint32 TimerCount = 10; - TIdleSupport::SetupIdleSupport(0, 0, &TimerCount); - if(TIdleSupport::GetTimerCount() != 10) - { - return KErrGeneral; - } - // Test GetTimerCount using default timer - Kern::Printf("test GetTimerCound using default timer"); - TIdleSupport::SetupIdleSupport(0, 0, 0); - TimerCount = TIdleSupport::GetTimerCount(); - - // Test MarkCoreRetired() - Kern::Printf("test MarkCoreRetired"); - TUint32 engagedMask = *(TIdleSupport::EngagedCpusMaskAddr()); - TIdleSupport::MarkCoreRetired(0x1); - if(*(TIdleSupport::EngagedCpusMaskAddr())!= (engagedMask&(~0x1))) - { - return KErrGeneral; - } - // Test MarkCoreEngaged() - Kern::Printf("test MarkCoreEngaged"); - TIdleSupport::MarkCoreEngaged(0x1); - if(*(TIdleSupport::EngagedCpusMaskAddr())!= (engagedMask|0x1)) - { - return KErrGeneral; - } - return r; -#else - Kern::Printf("DoTest no supported"); - return KErrNotSupported; -#endif - - }