--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsresourceservices/graphicsresourceimplementation/test/inc/tgraphicsresourcemultiprocessthread.h Fri Apr 16 16:21:04 2010 +0300
@@ -0,0 +1,137 @@
+// 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 <e32base.h>
+#include <sgresource/sgimage.h>
+#include <sgresource/sgresource.h>
+
+class CTTMSGraphicsStep;
+
+//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
+ {
+ ESgresUndefinedTest,
+ ESgresSecondProcessOpenImage,
+ ESgresSecondProcessOpenDrawable,
+ ESgresSecondThreadOpenImage,
+ ESgresSecondThreadOpenDrawable,
+ ESgresSecondProcessOpenImageInvalid,
+ ESgresSecondThreadOpenImageInvalid,
+ ESgresSecondThreadOpenDrawableInvalid,
+ ESgresSecondProcessOpenDrawableInvalid,
+ ESgresSecondThreadPanicDrawableOpenNoDriver,
+ ESgresSecondThreadPanicImageOpenNoDriver,
+ ESgresSecondThreadPanicImageGetInterfaceInvalidHandle,
+ ESgresSecondThreadPanicImageGetInterfaceNoDriver,
+ ESgresSecondThreadPanicImageCloseInvalidHandle,
+ ESgresSecondThreadPanicImageCloseNoDriver,
+ ESgresSecondThreadPanicImageIdInvalidHandle,
+ ESgresSecondThreadPanicImageIdNoDriver,
+ ESgresSecondThreadPanicImageDrawableTypeNoDriver,
+ ESgresSecondThreadPanicImageDrawableTypeInvalidHandle,
+ ESgresSecondThreadPanicImageCreateNoDriver1,
+ ESgresSecondThreadPanicImageCreateNoDriver2,
+ ESgresSecondThreadPanicImageCreateInvalidHandle,
+ ESgresSecondThreadPanicImageGetInfoInvalidHandle,
+ ESgresSecondThreadPanicImageGetInfoNoDriver,
+ ESgresMultipleThreadStressTest,
+ ESgresSecondThreadPanicImageGetAttributeInvalidHandle,
+ ESgresSecondThreadPanicImageGetAttributeNoDriver,
+ ESgresSecondThreadPanicAttributeArrayInvalidIndex,
+ ESgresSecondThreadPanicAttributeArrayInvalidIndex2,
+ ESgresSecondProcessPanicDriverCloseOpenResources,
+ ESgresSecondThreadOpenPassedDriver,
+ ESgresSecondThreadClosePassedDriver,
+ ESgresSecondThreadCreatePassedImage,
+ ESgresSecondThreadOpenPassedImage,
+ ESgresSecondThreadClosePassedImage,
+ ESgresSecondProcessOpenImageMultithreaded,
+ };
+
+/**
+* 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,
+ };
+
+
+/**
+Utility class for passing test info between processes.
+ */
+class TSgProcessTestInfo
+ {
+public:
+ TSgProcessTestInfo() :
+ iDrawableId(KSgNullDrawableId), iImageInfo(), iTestCase(ESgresUndefinedTest)
+ {}
+ TSgProcessTestInfo(TSgDrawableId aId, const TSgImageInfo& aImageInfo, TSgresTestCase aTestCase) :
+ iDrawableId(aId), iImageInfo(aImageInfo), iTestCase(aTestCase)
+ {}
+ TSgDrawableId iDrawableId;
+ TSgImageInfo iImageInfo;
+ TSgresTestCase iTestCase;
+ };
+
+/**
+Utility class for passing test info between threads.
+ */
+class TSgThreadTestInfo
+ {
+public:
+ TSgThreadTestInfo() :
+ iDrawableId(KSgNullDrawableId), iImageInfo(), iTestCase(ESgresUndefinedTest),
+ iSgDriver(NULL), iSgImage(NULL), iTestStep(NULL)
+ {}
+ TSgThreadTestInfo(TSgDrawableId aId, const TSgImageInfo& aImageInfo, TSgresTestCase aTestCase) :
+ iDrawableId(aId), iImageInfo(aImageInfo), iTestCase(aTestCase),
+ iSgDriver(NULL), iSgImage(NULL), iTestStep(NULL)
+ {}
+ TSgDrawableId iDrawableId;
+ TSgImageInfo iImageInfo;
+ TSgresTestCase iTestCase;
+ RSgDriver* iSgDriver;
+ RSgImage* iSgImage;
+ CTTMSGraphicsStep* iTestStep;
+ };
+
+#endif