windowing/windowserver/test/t_stress/inc/comparison.h
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/test/t_stress/inc/comparison.h	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,167 @@
+// Copyright (c) 2008-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
+*/
+
+#ifndef COMPARISON_H
+#define COMPARISON_H
+
+
+
+#include "stresslet.h"
+#include "test_step_comparison.h"
+#include "test_step_conf.h"
+
+#include "utils.h"
+
+class CCompWin;
+class CCrpClient;
+
+	
+class CComparison : public CStresslet
+	{
+private:
+	class COperationTimer : public CTimer
+	{
+	public:
+		COperationTimer(CComparison* aComp);
+		void ConstructL();
+		//pure virtual functions from CActive
+		void DoCancel();
+		void RunL();
+	private:
+		CComparison* iComp;
+	};
+	
+	//delayed bitmap comparison
+	class COneShotCompare : public CAsyncOneShot
+	{
+	public:
+		COneShotCompare(TInt aPriority, CComparison& aComparison);
+		static COneShotCompare* NewL(TInt aPriority, CComparison& aComparison);
+		virtual void RunL();
+	private:
+		CComparison& iComparison;
+	};
+	
+	friend class COneShotCompare;
+	
+	enum TMode
+		{
+		EAct,
+		EMove,
+		EResize
+		};
+	enum TAct
+		{
+		EACreate,
+		EADestroy,
+		EAFront,
+		EABack,
+		EAMove,
+		EAResize,
+		EATick,
+		EAToggleVisible,
+		EACount
+		};
+	struct TBehaviour
+		{
+		CCompWin* iWin;
+		TPoint iPos;
+		TInt iCount;
+		};
+public:
+	static CComparison * NewLC(MTestStepReporter& aReporter);
+	virtual ~CComparison();
+
+	void Verify(CFbsBitmap * aServerBmp);
+	void SetRunDataL(const TRunData& aRunData, MTestStepConfigurationContextFactory* aConfFactory);
+	TBool WindowsReadyForVerification() const;
+	void SetVerifyTick(TUint32 aTick);
+	
+private:
+	void HandleRedraw(TWsRedrawEvent &aEvent);
+	void HandleEvent(TWsEvent &aEvent);
+	
+	virtual void StartL();
+	TInt Tick();
+
+	void TickL();
+	void ActL();
+	void MoveL();
+	void ResizeL();
+	
+	void DoStuffL();
+	void CreateWindowL();
+	void DestroyWindow();
+	void MoveWindow();
+	void ResizeWindow();
+	void BringWindowToFrontL();
+	void SendWindowToBackL();
+	void TickWindowL();
+	void ToggleVisible();
+
+	TInt FindTopWindow(CCompWin* aWin);
+	void DrawBitmap();
+	CCompWin* RandomWindow();
+	TBool BitmapsMatch(const CFbsBitmap * aBitmap1, const CFbsBitmap * aBitmap2);
+	void Touch();
+	
+	CComparison (MTestStepReporter& aReporter);
+	
+	void ConstructL();
+	void WriteLog();
+private:
+	TInt64 iFirstSeed;
+	TMode iMode;
+	TAct iAct;
+	TBool iWasOk;
+	TBehaviour iBehaviour;
+	CPeriodic* iPeriodic;
+	RWindowGroup* iWinGroup;
+	RBlankWindow* iBackground;
+	RPointerArray<CCompWin> iWindows;
+	CFbsBitmap * iBitmap[2];
+	CFbsBitmapDevice * iDevice[2];
+	CFbsBitGc * iBmpGc;
+	CFbsBitmap * iDifferenceBitmap;
+	CFbsBitmapDevice * iDifferenceDevice;
+	CWsScreenDevice* iScreen;
+	CFbsBitmap *iScreenBitmap;
+	RFs iFs;
+	TTime iStartTime;
+	TInt iCurrentBmp;
+	TInt iLastBmp;
+	TInt iTestNum;
+	TInt iErrorNum;
+	TUint32 iPixel1;
+	TUint32 iPixel2;
+	TPoint iPixelPos;
+	
+	TBool iMustConclude;
+	TInt  iNumWindowsLeft;	//number of windows to be created before test is over
+	CTestExecWatchCat* iWatchCat;
+	TRunData iData;
+
+	TBool iStuffDone;
+	COperationTimer* iTimer;
+	COneShotCompare *iOneShotCompare;
+	};
+
+#endif // COMPARISON_H