graphicscomposition/openwftest/inc/openwftest.h
changeset 121 d72fc2aace31
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicscomposition/openwftest/inc/openwftest.h	Tue Jul 20 13:27:44 2010 +0300
@@ -0,0 +1,212 @@
+// Copyright (c) 2010 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:
+//
+
+#ifndef OPENWFTEST_H
+#define OPENWFTEST_H
+
+// INCLUDES
+#include <test/tefunit.h>
+#include <w32std.h>
+#include <graphics/symbianstream.h>
+#include <graphics/surfacemanager.h>
+#include <graphics/streammap.h>
+#include <EGL/egl.h>
+#include <graphics/eglsynchelper.h>
+#include <WF/wfc.h>
+#include "surfaceutility.h"
+
+class CTestExecuteLogger;
+class CSurfaceStream;
+
+/* Color defines for openwf test.*/
+#define KDarkRed		TRgb(127,0,0,255)
+#define KRed			TRgb(255,0,0,255)
+#define KGreen			TRgb(0,255,0,255)
+#define KBlue			TRgb(0,0,255,255)
+#define KCyan			TRgb(0,255,255,255)
+#define KMagenta		TRgb(255,0,255,255)
+#define KYellow			TRgb(255,255,0,255)
+#define KBrown			TRgb(150,75,0,255)
+#define KBlack			TRgb(0,0,0,255)
+#define KBlackAlpha0	TRgb(0,0,0,0)
+#define KWhite			TRgb(255,255,255,255)
+#define KWhiteAlpha0	TRgb(255,255,255,0)
+#define KGray			TRgb(127,127,127,255)
+#define KGrayHalfAlpha	TRgb(127,127,127,127)
+
+#define KMaxImagePathLength 100
+#define KMaxTestNameLength 20
+
+class CActiveNotification : public CActive
+	{
+public:
+	static CActiveNotification* NewL(RSurfaceUpdateSession& aSurfaceUpdateSession,TBool aActivate);
+	~CActiveNotification();
+	void Activate();
+	// From CActive:
+	void RunL();
+	void DoCancel();
+	TInt RunError(TInt aError);
+protected:
+	CActiveNotification();
+	void ConstructL(RSurfaceUpdateSession& aSurfaceUpdateSession);
+private:
+	RSurfaceUpdateSession iSurfaceUpdateSession;
+	};
+
+//Use instead of User::After
+class CActiveWaiter : public CActive
+	{
+public:
+	static CActiveWaiter* NewL();
+	~CActiveWaiter();
+	TInt Wait(TTimeIntervalMicroSeconds32 aDelay);
+	void StartWait(TTimeIntervalMicroSeconds32 aDelay);
+	// From CActive:
+	void RunL();
+	void DoCancel();
+	TInt RunError(TInt aError);
+protected:
+	CActiveWaiter();
+	void ConstructL();
+public:
+	TBool iRun;
+protected:
+	RTimer iTimer;
+	};
+
+/**
+ *  COpenwfTest
+ * 
+ */
+class COpenwfTest : public CTestFixture
+	{
+public:
+	COpenwfTest();
+	~COpenwfTest();
+
+	virtual void SetupL();
+	virtual void TearDownL();
+	static CTestSuite* CreateSuiteL(const TDesC& aName);
+	
+    enum TCacheAttribute
+        {
+	    /** not CPU cached */
+	    ENotCached = 0,
+	    /** CPU cached */
+	    ECached = 1,
+	    /** Not listed */
+	    ECacheNotlisted = 2
+	    };
+
+    enum TContiguousFlag
+        {
+        ENonContiguous = 0,
+        EContiguous = 1,
+        EFlagNotListed = 2
+        };
+    
+    enum TTestMode
+        {
+        EAutomatic = 0,
+        EManual = 1
+        };
+    
+private:
+    TBool AcquireOnScreenStream();
+    void ReleaseOnScreenStream();
+    TBool CheckOnScreenStreamRect(TRect aRect, const TRgb& aExpectedColor, TInt aTolerance);
+    TBool CheckRect(const TSurfaceId& aSurface, TInt aNumOfBuffer, TRect aRect, 
+    		const TRgb& aExpectedColor, TInt aTolerance);
+    TBool CheckOnScreenReferenceImage();
+    TBool SaveImage(const TSurfaceId& aSurfaceId, TInt aNumOfBuffer);
+    TInt WaitL(TTimeIntervalMicroSeconds32 aDelay);	//aDelay in microseconds
+    TBool WaitForNotifications(TTimeIntervalMicroSeconds32 aMaxDelay,TInt aNotificatons);
+    void ReadIniData();
+    void TearDown();
+    void SetupEmptySceneL(TBool aAutonomous = ETrue);
+    
+	// Fastpath positive tests
+	void GRAPHICS_OPENWFC_FASTPATH_0000L();
+	void GRAPHICS_OPENWFC_FASTPATH_0001L();
+	void GRAPHICS_OPENWFC_FASTPATH_0002L();
+	void GRAPHICS_OPENWFC_FASTPATH_0003L();
+    void GRAPHICS_OPENWFC_FASTPATH_0004L();
+    void GRAPHICS_OPENWFC_FASTPATH_0005L();
+    void GRAPHICS_OPENWFC_FASTPATH_0006L();
+    void GRAPHICS_OPENWFC_FASTPATH_0007L();
+	
+	// Fastpath with notification tests
+    void FastpathNotificationsTestL(TBool aAutonomous);
+	void GRAPHICS_OPENWFC_FASTPATH_0010L();
+	void GRAPHICS_OPENWFC_FASTPATH_0011L();
+	void FastpathDispXNotificationsTestL(TBool aAutonomous);
+	void GRAPHICS_OPENWFC_FASTPATH_0012L();
+	void GRAPHICS_OPENWFC_FASTPATH_0013L();
+	
+	// Fastpath negative tests
+	void GRAPHICS_OPENWFC_FASTPATH_0020L();
+	void GRAPHICS_OPENWFC_FASTPATH_0021L();
+	void GRAPHICS_OPENWFC_FASTPATH_0022L();
+	void GRAPHICS_OPENWFC_FASTPATH_0023L();
+	void GRAPHICS_OPENWFC_FASTPATH_0024L();
+	void GRAPHICS_OPENWFC_FASTPATH_0025L();
+	void GRAPHICS_OPENWFC_FASTPATH_0026L();
+    void GRAPHICS_OPENWFC_FASTPATH_0027L();
+			
+private:
+    TInt iFastpathableWidth;
+    TInt iFastpathableHeight;
+    TInt iStride;        
+    TContiguousFlag iContiguous;
+    TUidPixelFormat iFastpathablePixelFormat;
+    TUidPixelFormat iNonFastpathablePixelFormat;
+    TInt iOffsetToFirstBuffer; 
+    TInt iAlignment;           
+    TBool iMappable;
+    TInt iMaxBuffers;              
+    TInt iMinBuffers;
+    TCacheAttribute iCacheAttrib;
+    TInt iOffsetBetweenBuffers;
+    TInt iTestMode;
+    TBool iSaveImage;
+    TTimeIntervalMicroSeconds32 iCompositionPause;	//delay in microseconds
+    TTimeIntervalMicroSeconds32 iManualPause;	//delay for manual checking in microseconds
+    TBool iAllowManualPause;  //some tests may not allow manual pauses
+    TInt iTolerance;
+    WFCint iDeviceId;
+    EGLSyncKHR iSync;
+    WFCDevice iDevice;
+    WFCContext iContext;
+
+    TRect iFullScreenTRect;
+    WFCint iFullScreenRect[4];
+    TRect iCenterTRect;
+    WFCint iCenterRect[4];
+    WFCint iHalfSizeRect[4];
+    
+    CActiveScheduler* iScheduler;
+    EGLDisplay iEGLDisplay;
+    CSurfaceUtility* iUtility;
+    //TPtrC iDir;
+    TPtrC iImageDirectory;
+    TBufC<KMaxTestNameLength> iTestName;
+	TBuf<KMaxImagePathLength> iImageAddress;
+    TInt iImageCounter;
+    SymbianStreamType iOnScreenStream;
+    SymbianStreamBuffer iOnScreenBuffer;
+	};
+
+#endif // OPENWFTEST_H