windowing/windowserver/tauto/twindowsizecache.h
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/tauto/twindowsizecache.h	Tue Feb 02 01:47:50 2010 +0200
@@ -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