diff -r 28839de615b4 -r 26645d81f48d persistentstorage/centralrepository/test/testexecute/performance/src/TE_NotifyMemTestStep.cpp --- a/persistentstorage/centralrepository/test/testexecute/performance/src/TE_NotifyMemTestStep.cpp Thu Aug 19 11:36:21 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,208 +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 "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: -// - -#include "TE_NotifyMemTestStep.h" -#include "TE_PerfTestUtilities.h" -#include "t_cenrep_helper.h" -#include -#include "srvreqs.h" -#include "srvPerf.h" -#include "srvdefs.h" -#include "cachemgr.h" - -//-------------------------------- -// class CNotifyMemTestStep -//-------------------------------- - -#if defined(__CENTREP_SERVER_MEMTEST__) -const TUid KUidTestRepository1 = { 0x00000001 }; -const TUid KUidCacheTestRepositorySmTxt = { 0x00000100 }; -const TUid KUidCacheTestRepositoryMedTxt = { 0x10057522 }; -const TUid KUidCacheTestRepositorySmCre = { 0x22222221 }; -const TUid KUidCacheTestRepositoryLrgCre = { 0xCCCCCC02 }; - -const TInt KKey1 = 1; -const TInt KKey2 = 0x201; -const TInt KKey3 = 8585472; -const TInt KKey4 = 22; -#endif - -#ifdef __CENTREP_SERVER_MEMTEST__ -void CNotifyMemTestStep::ProcessMemTestResults(TAny* aRawData, TInt32 aRawCount, RArray& aMemTestResults) - { - ASSERT(aRawCount); - ASSERT(aRawCount>=3); - - for(TInt i=0; i+2(aRawData)[i++]; - TInt32 value2 = static_cast(aRawData)[i++]; - TInt32 value3 = static_cast(aRawData)[i++]; - - if(value1 == KMagicMemTestOutOfBounds && value2 == KMagicMemTestOutOfBounds && value2 == KMagicMemTestOutOfBounds) - { - WARN_PRINTF1(_L("Memory test was not able to store all the requested values. Only the stored values will be reported.")); - } - else - { - TMemTestResult result(value1, value2, ETrue); - if(result.iLocation == EMemLcnOnDemand) - { - result.iInitHeapSize = 0; - result.iFinalHeapSize = value3; - aMemTestResults.Append(result); - } - } - } - } -#endif //__CENTREP_SERVER_MEMTEST__ - -/** -@SYMTestCaseID SYSLIBS-CENTRALREPOSITORY-PT-1658 -@SYMTestCaseDesc Notify-only client optimization RAM usage test -@SYMTestPriority High -@SYMTestActions Retrieve memory usage data collected by CentRep server, analyze, and - print out a summary during certain stages of the lifetime of session objects. -@SYMTestExpectedResults This test always pass. Engineers working on CentRep - improvement will run this suite before and after submission to gauge actual - savings in RAM usage of repositories. -@SYMPREQ PREQ 1228 Symbian OS v9.3 System Quality: Performance, ROM and RAM targets -*/ -TVerdict CNotifyMemTestStep::doTestStepL() - { -#if defined(__CENTREP_SERVER_MEMTEST__) - - SetTestStepResult(EFail); - - TInt testSteps = 0; - TInt r; - - // Make sure cache is empty before we start -#ifdef __CENTREP_SERVER_CACHETEST__ - r = SetGetParameters(TIpcArgs(EDisableCache)); - TESTL(r==KErrNone); - r = SetGetParameters(TIpcArgs(EEnableCache, KDefaultEvictionTimeout, KDefaultCacheSize)); - TESTL(r==KErrNone); -#else //__CENTREP_SERVER_CACHETEST__ - CleanupRepositoryCache(); -#endif //__CENTREP_SERVER_CACHETEST__ - //Reset RAM test data - r = SetGetParameters(TIpcArgs(ERestartMemTests)); - TESTL(r==KErrNone); - - // Start of test - Logger().WriteFormat(_L("Step %d, RAM at the beginning of test"),testSteps); - r = SetGetParameters(TIpcArgs(ESingleMemTest, testSteps++)); - TESTL(r==KErrNone); - - CRepository* repository1; - User::LeaveIfNull(repository1 = CRepository::NewLC(KUidTestRepository1)); - CRepository* repository2; - User::LeaveIfNull(repository2 = CRepository::NewLC(KUidCacheTestRepositorySmTxt)); - CRepository* repository3; - User::LeaveIfNull(repository3 = CRepository::NewLC(KUidCacheTestRepositoryMedTxt)); - CRepository* repository4; - User::LeaveIfNull(repository4 = CRepository::NewLC(KUidCacheTestRepositorySmCre)); - CRepository* repository5; - User::LeaveIfNull(repository5 = CRepository::NewLC(KUidCacheTestRepositoryLrgCre)); - - // Reps automatically loaded by Init - Logger().WriteFormat(_L("Step %d, RAM after sessions created"),testSteps); - r = SetGetParameters(TIpcArgs(ESingleMemTest, testSteps++)); - TESTL(r==KErrNone); - - TInt i; - r = repository1->Get(KKey1, i); - TESTL(r==KErrNone); - r = repository2->Get(KKey2, i); - TESTL(r==KErrNone); - r = repository3->Get(KKey4, i); - TESTL(r==KErrNone); - r = repository4->Get(KKey1, i); - TESTL(r==KErrNone); - r = repository5->Get(KKey3, i); - TESTL(r==KErrNone); - - // Get's don't change memory usage because reps are already loaded/in cache - Logger().WriteFormat(_L("Step %d, RAM after Get() calls"),testSteps); - r = SetGetParameters(TIpcArgs(ESingleMemTest, testSteps++)); - TESTL(r==KErrNone); - -#ifdef __CENTREP_SERVER_CACHETEST__ - r = SetGetParameters(TIpcArgs(EDisableCache)); - TESTL(r==KErrNone); - r = SetGetParameters(TIpcArgs(EEnableCache, KDefaultEvictionTimeout, KDefaultCacheSize)); - TESTL(r==KErrNone); -#else //__CENTREP_SERVER_CACHETEST__ - CleanupRepositoryCache(); -#endif //__CENTREP_SERVER_CACHETEST__ - - // Memory freed after reps are evicted - Logger().WriteFormat(_L("Step %d, RAM after delaying for eviction"),testSteps); - r = SetGetParameters(TIpcArgs(ESingleMemTest, testSteps++)); - TESTL(r==KErrNone); - - r = repository1->Get(KKey1, i); - TESTL(r==KErrNone); - r = repository2->Get(KKey2, i); - TESTL(r==KErrNone); - r = repository3->Get(KKey4, i); - TESTL(r==KErrNone); - r = repository4->Get(KKey1, i); - TESTL(r==KErrNone); - r = repository5->Get(KKey3, i); - TESTL(r==KErrNone); - - // This time Get's trigger loads - Logger().WriteFormat(_L("Step %d, RAM after Get() calls"),testSteps); - r = SetGetParameters(TIpcArgs(ESingleMemTest, testSteps++)); - TESTL(r==KErrNone); - - CleanupStack::PopAndDestroy(5); - - // Closing sessions don't unload the reps because of coarse grained caching - Logger().WriteFormat(_L("Step %d, RAM after sessions are closed"),testSteps); - r = SetGetParameters(TIpcArgs(ESingleMemTest, testSteps++)); - TESTL(r==KErrNone); - -#ifdef __CENTREP_SERVER_CACHETEST__ - r = SetGetParameters(TIpcArgs(EDisableCache)); - TESTL(r==KErrNone); - r = SetGetParameters(TIpcArgs(EEnableCache, KDefaultEvictionTimeout, KDefaultCacheSize)); - TESTL(r==KErrNone); -#else //__CENTREP_SERVER_CACHETEST__ - CleanupRepositoryCache(); -#endif //__CENTREP_SERVER_CACHETEST__ - - // Reps are unloaded by cache manager - Logger().WriteFormat(_L("Step %d, RAM after delaying for eviction"),testSteps); - r = SetGetParameters(TIpcArgs(ESingleMemTest, testSteps++)); - TESTL(r==KErrNone); - - // call inherited function to get the results - SetTestStepResult(CMemTestStep::doTestStepL()); - - return TestStepResult(); -#else // defined(__CENTREP_SERVER_MEMTEST__) - - _LIT(KWarnMemTestMacroOff, "Memory test macro __CENTREP_SERVER_MEMTEST__ is disabled. Test not run."); - WARN_PRINTF1(KWarnMemTestMacroOff); - - return EPass; -# endif // defined(__CENTREP_SERVER_MEMTEST__) - - - - }