graphicsresourceservices/graphicsresource/test/tgraphicsresourcemultiprocessthread.h
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsresourceservices/graphicsresource/test/tgraphicsresourcemultiprocessthread.h	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,130 @@
+// Copyright (c) 2007-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:
+//
+
+#ifndef TGRAPHICSRESOURCEMULTIPROCESSTHREAD_H
+#define TGRAPHICSRESOURCEMULTIPROCESSTHREAD_H
+
+#include "sgimage.h"
+#include "sgimagecollection.h"
+#include "sgresource.h"
+#include <e32base.h>
+#include <graphics/sgresourceinternal.h>
+
+//define default slot for multiprocess communication
+const TInt KSecondProcessFunctionSlot = 1;
+const TInt KSecondProcessParametersSlot = 2;
+
+/**
+* Enums for passing between the test process and the second process used in testing,
+* used to define which test should be run on the second process.
+*/
+enum TSgresTestCase
+	{
+	ESgresSecondProcessOpenImage,
+	ESgresSecondProcessOpenDrawable,
+	ESgresSecondThreadOpenImage,
+	ESgresSecondThreadOpenDrawable,
+	ESgresSecondProcessOpenImageInvalid,
+	ESgresSecondThreadOpenImageInvalid,
+	ESgresSecondProcessMapImage,
+	ESgresSecondThreadMapImage,
+	ESgresSecondProcessUnmapImage,
+	ESgresSecondThreadUnmapImage,
+	ESgresSecondThreadOpenDrawableInvalid,
+	ESgresSecondProcessOpenDrawableInvalid,
+	ESgresSecondProcessPanicDriverUnclosedResources,
+	ESgresSecondProcessPanicMemoryLeak,
+	ESgresSecondThreadPanicDrawableOpenNoDriver,
+	ESgresSecondThreadPanicImageOpenNoDriver1,
+	ESgresSecondThreadPanicImageOpenNoDriver2,
+	ESgresSecondThreadPanicImageGetInterfaceInvalidHandle,
+	ESgresSecondThreadPanicImageGetInterfaceNoDriver,
+	ESgresSecondThreadPanicImageCloseInvalidHandle,
+	ESgresSecondThreadPanicImageCloseNoDriver,
+	ESgresSecondThreadPanicImageIdInvalidHandle,
+	ESgresSecondThreadPanicImageIdNoDriver,
+	ESgresSecondThreadPanicImageDrawableTypeNoDriver,
+	ESgresSecondThreadPanicImageDrawableTypeInvalidHandle,
+	ESgresSecondThreadPanicImageCreateNoDriver1,
+	ESgresSecondThreadPanicImageCreateNoDriver2,
+	ESgresSecondThreadPanicImageCreateInvalidHandle,
+	ESgresSecondThreadPanicImageGetInfoInvalidHandle,
+	ESgresSecondThreadPanicImageGetInfoNoDriver,
+	ESgresSecondThreadPanicImageGetPixelFormatsNoDriver,
+	ESgresSecondThreadPanicImageMapReadOnlyInvalidHandle,
+	ESgresSecondThreadPanicImageMapReadOnlyNoDriver,
+	ESgresSecondThreadPanicImageMapWriteOnlyInvalidHandle,
+	ESgresSecondThreadPanicImageMapWriteOnlyNoDriver,
+	ESgresSecondThreadPanicImageMapReadWriteInvalidHandle,
+	ESgresSecondThreadPanicImageMapReadWriteNoDriver,
+	ESgresSecondThreadPanicImageUnmapInvalidHandle,
+	ESgresSecondThreadPanicImageUnmapNoDriver,
+	ESgresSecondThreadPanicImageCollectionCreateNoDriver1,
+	ESgresSecondThreadPanicImageCollectionCreateNoDriver2,
+	ESgresSecondThreadPanicImageCollectionCloseInvalidHandle,
+	ESgresSecondThreadPanicImageCollectionCloseNoDriver,
+	ESgresSecondThreadPanicImageCollectionSurfaceIdInvalidHandle,
+	ESgresSecondThreadPanicImageCollectionSurfaceIdNoDriver,
+	ESgresSecondThreadPanicImageCollectionGetInfoInvalidHandle,
+	ESgresSecondThreadPanicImageCollectionGetInfoNoDriver,
+	ESgresSecondThreadPanicImageCollectionCountInvalidHandle,
+	ESgresSecondThreadPanicImageCollectionCountNoDriver,
+	ESgresSecondThreadPanicImageCollectionOpenImageInvalidHandle,
+	ESgresSecondThreadPanicImageCollectionOpenImageNoDriver,
+	ESgresSecondThreadPanicResourceCountNoDriver,
+	ESgresSecondThreadPanicAllocMarkStartNoDriver,
+	ESgresSecondThreadPanicAllocMarkEndNoDriver,
+	ESgresSecondThreadPanicSetAllocFailNoDriver,
+	ESgresMultipleThreadStressTest,
+	};
+
+/**
+* Enums for the test results. Used in multi-thread or multi-process tests.
+* Each test function call may contain several sub-tests. Each EXXXTestPassed
+* will be bitwised ored to the test result as each sub-test passes.
+*/
+enum TSgresTestResult
+	{
+	EFirstTestPassed = 0x00000001,
+	ESecondTestPassed = 0x00000002,
+	EThirdTestPassed = 0x00000004,
+	EFourthTestPassed = 0x00000008,
+	EFifthTestPassed = 0x00000010,
+	ESixthTestPassed = 0x00000020,
+	ESeventhTestPassed = 0x00000040,
+	EEighthTestPassed = 0x00000080,
+	ENinthTestPassed = 0x00000100,
+	ETenthTestPassed = 0x00000200,
+	EEleventhTestPassed = 0x00000400,
+	ETwelvethTestPassed = 0x00000800,
+	EThirteenthTestPassed = 0x00001000,
+	EFourteenthTestPassed = 0x00002000,
+	EFifteenthTestPassed = 0x00004000,
+	};
+	
+	
+/**
+ * Class for passing test info to other threads or processes.
+ */	
+struct TSgresTestInfo 
+	{
+	TSgDrawableId iDrawableId;
+	TSgImageInfo iImageInfo;
+	TInt iImageCount;
+	TSgresTestCase iTestCase;
+	TBool iPanic;
+	};
+	
+#endif