--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/tauto/twindowsizecache.h Wed Sep 01 12:39:21 2010 +0100
@@ -0,0 +1,143 @@
+// Copyright (c) 1996-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:
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+#ifndef __TWINDOWSIZECACHE_H__
+#define __TWINDOWSIZECACHE_H__
+
+#include <e32std.h>
+#include <w32std.h>
+#include "AUTO.H"
+
+#include "../nga/CLIENT/w32comm.h"
+
+#include "../tlib/testbase.h"
+#include "TGraphicsHarness.h"
+
+//-----------------------------------------------------------
+class CTWindowSizeCacheTest : public CTWsGraphicsBase
+ {
+public:
+ enum TSizeCacheStatus
+ {
+ ETestSizeCacheNotEnabled,
+ ETestSizeCacheEnabled,
+ };
+ enum TRWindowAction
+ {
+ ESetExtent,
+ ESetExtentErr,
+ ESetSize,
+ ESetSizeErr,
+ ECheckSize,
+ EFlushSession,
+ EEnableWindowSizeCache,
+ EMaxAction,
+ };
+public:
+ CTWindowSizeCacheTest(CTestStep* aStep);
+ ~CTWindowSizeCacheTest();
+ TestState DoTestL();
+ void ConstructL();
+//
+ void TestCreateRWindowL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestCreateRBlankWindowL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestCreateRBackedUpWindowL(TSizeCacheStatus aEnableWindowSizeCache, TDisplayMode aDisplayMode);
+//
+ void TestRWindowNoCacheEntryL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowNoCacheEntrySetExtentErrL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowNoCacheEntrySetSizeErrL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowNoCacheEntrySetExtentL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowNoCacheEntrySetSizeL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowNoCacheEntryEnableWindowSizeCacheL();
+//
+ void TestRWindowCacheEntryExistsCacheCleanL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheCleanSizeL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheCleanEnableWindowSizeCacheL();
+ void TestRWindowCacheEntryExistsCacheCleanEnableWindowSizeCacheLSizeL();
+//
+ void TestRWindowCacheEntryExistsCacheDirtySetSizeL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtySetExtentL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtySetSizeErrL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtySetExtentErrL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtySetSizeTwiceL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtySetSizeSetExtentL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtySetSizeSetSizeErrL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtySetSizeSetExtentErrL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtySetSizeEnableWindowSizeCacheL();
+//
+ void TestRWindowCacheEntryExistsCacheDirtyToCleanSetSizeL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtyToCleanSetExtentL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtyToCleanSetSizeErrL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtyToCleanSetExtentErrL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtyToCleanSetSizeTwiceL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtyToCleanSetSizeSetExtentL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtyToCleanSetSizeSetSizeErrL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtyToCleanSetSizeSetExtentErrL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRWindowCacheEntryExistsCacheDirtyToCleanSetSizeEnableWindowSizeCacheL();
+//
+ void TestRBlankWindowSetSizeSetExtentL(TSizeCacheStatus aEnableWindowSizeCache);
+ void TestRBackedUpWindowSetSizeErrSetExtentErrL(TSizeCacheStatus aEnableWindowSizeCache);
+//
+ void SetRandomSeed(TInt64 aSeed);
+ inline TInt NextRandom(TUint aMax = 0);
+//
+ TUint64 TestRWindowSizePerformanceL(TSizeCacheStatus aEnableWindowSizeCache, TUint aIterations);
+//
+ static void CleanupWindowPool(TAny* aPtr);
+ void RWindowPerformAction(TRWindowAction aAction, TSizeCacheStatus aEnableWindowSizeCache, RWsSession& aWs, RWindow& aWindow, TSize& aExpectedSize);
+ void TestRandomisedStressL(TSizeCacheStatus aEnableWindowSizeCache, TUint aIterations);
+ void TestRandomisedStressMultiSessionL(TSizeCacheStatus aEnableWindowSizeCache, TUint aIterations);
+ void TestRandomisedStressCacheEntryVolumeL(TSizeCacheStatus aEnableWindowSizeCache, TUint aIterations, TUint aWindowPoolSize);
+ void TestStressEnableWindowSizeCacheL(TUint aIterations);
+
+protected:
+//from CTGraphicsStep
+ virtual void RunTestCaseL(TInt aCurTestCase);
+
+private:
+ TInt64 iSeed;
+ };
+
+//-----------------------------------------------------------
+inline TInt CTWindowSizeCacheTest::NextRandom(TUint aMax)
+ {
+ TInt random = Math::Rand(iSeed);
+ if (aMax != 0)
+ {
+ random = random % aMax;
+ }
+ return random;
+ }
+
+//-----------------------------------------------------------
+class CTWindowSizeCacheTestStep : public CTGraphicsStep
+ {
+public:
+ CTWindowSizeCacheTestStep();
+protected:
+ //from CTGraphicsStep
+ virtual CTGraphicsBase* CreateTestL();
+ };
+
+_LIT(KTWindowSizeCacheTestStep,"TWindowSizeCacheTest");
+
+//-----------------------------------------------------------
+#endif // TWINDOWSIZECACHE