sl@0: // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #ifndef TGRAPHICSRESOURCEMULTIPROCESSTHREAD_H sl@0: #define TGRAPHICSRESOURCEMULTIPROCESSTHREAD_H sl@0: sl@0: #include "sgimage.h" sl@0: #include "sgimagecollection.h" sl@0: #include "sgresource.h" sl@0: #include sl@0: #include sl@0: sl@0: //define default slot for multiprocess communication sl@0: const TInt KSecondProcessFunctionSlot = 1; sl@0: const TInt KSecondProcessParametersSlot = 2; sl@0: sl@0: /** sl@0: * Enums for passing between the test process and the second process used in testing, sl@0: * used to define which test should be run on the second process. sl@0: */ sl@0: enum TSgresTestCase sl@0: { sl@0: ESgresSecondProcessOpenImage, sl@0: ESgresSecondProcessOpenDrawable, sl@0: ESgresSecondThreadOpenImage, sl@0: ESgresSecondThreadOpenDrawable, sl@0: ESgresSecondProcessOpenImageInvalid, sl@0: ESgresSecondThreadOpenImageInvalid, sl@0: ESgresSecondProcessMapImage, sl@0: ESgresSecondThreadMapImage, sl@0: ESgresSecondProcessUnmapImage, sl@0: ESgresSecondThreadUnmapImage, sl@0: ESgresSecondThreadOpenDrawableInvalid, sl@0: ESgresSecondProcessOpenDrawableInvalid, sl@0: ESgresSecondProcessPanicDriverUnclosedResources, sl@0: ESgresSecondProcessPanicMemoryLeak, sl@0: ESgresSecondThreadPanicDrawableOpenNoDriver, sl@0: ESgresSecondThreadPanicImageOpenNoDriver1, sl@0: ESgresSecondThreadPanicImageOpenNoDriver2, sl@0: ESgresSecondThreadPanicImageGetInterfaceInvalidHandle, sl@0: ESgresSecondThreadPanicImageGetInterfaceNoDriver, sl@0: ESgresSecondThreadPanicImageCloseInvalidHandle, sl@0: ESgresSecondThreadPanicImageCloseNoDriver, sl@0: ESgresSecondThreadPanicImageIdInvalidHandle, sl@0: ESgresSecondThreadPanicImageIdNoDriver, sl@0: ESgresSecondThreadPanicImageDrawableTypeNoDriver, sl@0: ESgresSecondThreadPanicImageDrawableTypeInvalidHandle, sl@0: ESgresSecondThreadPanicImageCreateNoDriver1, sl@0: ESgresSecondThreadPanicImageCreateNoDriver2, sl@0: ESgresSecondThreadPanicImageCreateInvalidHandle, sl@0: ESgresSecondThreadPanicImageGetInfoInvalidHandle, sl@0: ESgresSecondThreadPanicImageGetInfoNoDriver, sl@0: ESgresSecondThreadPanicImageGetPixelFormatsNoDriver, sl@0: ESgresSecondThreadPanicImageMapReadOnlyInvalidHandle, sl@0: ESgresSecondThreadPanicImageMapReadOnlyNoDriver, sl@0: ESgresSecondThreadPanicImageMapWriteOnlyInvalidHandle, sl@0: ESgresSecondThreadPanicImageMapWriteOnlyNoDriver, sl@0: ESgresSecondThreadPanicImageMapReadWriteInvalidHandle, sl@0: ESgresSecondThreadPanicImageMapReadWriteNoDriver, sl@0: ESgresSecondThreadPanicImageUnmapInvalidHandle, sl@0: ESgresSecondThreadPanicImageUnmapNoDriver, sl@0: ESgresSecondThreadPanicImageCollectionCreateNoDriver1, sl@0: ESgresSecondThreadPanicImageCollectionCreateNoDriver2, sl@0: ESgresSecondThreadPanicImageCollectionCloseInvalidHandle, sl@0: ESgresSecondThreadPanicImageCollectionCloseNoDriver, sl@0: ESgresSecondThreadPanicImageCollectionSurfaceIdInvalidHandle, sl@0: ESgresSecondThreadPanicImageCollectionSurfaceIdNoDriver, sl@0: ESgresSecondThreadPanicImageCollectionGetInfoInvalidHandle, sl@0: ESgresSecondThreadPanicImageCollectionGetInfoNoDriver, sl@0: ESgresSecondThreadPanicImageCollectionCountInvalidHandle, sl@0: ESgresSecondThreadPanicImageCollectionCountNoDriver, sl@0: ESgresSecondThreadPanicImageCollectionOpenImageInvalidHandle, sl@0: ESgresSecondThreadPanicImageCollectionOpenImageNoDriver, sl@0: ESgresSecondThreadPanicResourceCountNoDriver, sl@0: ESgresSecondThreadPanicAllocMarkStartNoDriver, sl@0: ESgresSecondThreadPanicAllocMarkEndNoDriver, sl@0: ESgresSecondThreadPanicSetAllocFailNoDriver, sl@0: ESgresMultipleThreadStressTest, sl@0: }; sl@0: sl@0: /** sl@0: * Enums for the test results. Used in multi-thread or multi-process tests. sl@0: * Each test function call may contain several sub-tests. Each EXXXTestPassed sl@0: * will be bitwised ored to the test result as each sub-test passes. sl@0: */ sl@0: enum TSgresTestResult sl@0: { sl@0: EFirstTestPassed = 0x00000001, sl@0: ESecondTestPassed = 0x00000002, sl@0: EThirdTestPassed = 0x00000004, sl@0: EFourthTestPassed = 0x00000008, sl@0: EFifthTestPassed = 0x00000010, sl@0: ESixthTestPassed = 0x00000020, sl@0: ESeventhTestPassed = 0x00000040, sl@0: EEighthTestPassed = 0x00000080, sl@0: ENinthTestPassed = 0x00000100, sl@0: ETenthTestPassed = 0x00000200, sl@0: EEleventhTestPassed = 0x00000400, sl@0: ETwelvethTestPassed = 0x00000800, sl@0: EThirteenthTestPassed = 0x00001000, sl@0: EFourteenthTestPassed = 0x00002000, sl@0: EFifteenthTestPassed = 0x00004000, sl@0: }; sl@0: sl@0: sl@0: /** sl@0: * Class for passing test info to other threads or processes. sl@0: */ sl@0: struct TSgresTestInfo sl@0: { sl@0: TSgDrawableId iDrawableId; sl@0: TSgImageInfo iImageInfo; sl@0: TInt iImageCount; sl@0: TSgresTestCase iTestCase; sl@0: TBool iPanic; sl@0: }; sl@0: sl@0: #endif