graphicsresourceservices/graphicsresourceimplementation/test/src/tsggenericmanual.cpp
author hgs
Tue, 22 Jun 2010 15:21:29 +0300
changeset 103 2717213c588a
parent 36 01a6848ebfd7
permissions -rw-r--r--
201024
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
103
hgs
parents: 36
diff changeset
     1
// Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
// All rights reserved.
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
// This component and the accompanying materials are made available
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
// which accompanies this distribution, and is available
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
//
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
// Initial Contributors:
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
//
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
// Contributors:
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
//
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
// Description:
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
// Tests for manual execution.
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
/**
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
 @file
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
 @test
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
 @internalComponent - Graphics Resource API Conformance Test Suite
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
*/
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include "tsggenericmanual.h"
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
CTSgGenericManual::CTSgGenericManual(TBool aConformanceTests) :
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
	CTSgTestStepBase(aConformanceTests)
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
	{
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
	INFO_PRINTF1(_L("Graphics resource component test - Generic Manual Tests.\r\n"));
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
	}
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
CTSgGenericManual::~CTSgGenericManual()
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
	{
103
hgs
parents: 36
diff changeset
    32
	iSecondProcess.Close();
hgs
parents: 36
diff changeset
    33
	iMsgQ.Close();
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
	}
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
/**
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
This is intented to be used for TestStressResourceLeakL (GRAPHICS-RESOURCE-0050) test. 
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
It creates images until the memory full situation. The images are kept in the passed RArray of RSgImage. 
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
The returned error code is expected to be either KErrNoMemory or KErrNoGraphicsMemory.
103
hgs
parents: 36
diff changeset
    40
Optionally, it opens and closes a duplicate handle to each image in the same process and in another process.
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
*/
103
hgs
parents: 36
diff changeset
    42
TInt CTSgGenericManual::CreateImages(const TSgImageInfo& aInfo, RArray<RSgImage>& aTestImages, TBool aDuplicate)
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
    {
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
    TInt err = KErrNone;
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
    while(err == KErrNone)
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
        {
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
        RSgImage image;
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
        err = image.Create(aInfo);
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
        if(err == KErrNone)
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
            {
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
            err = aTestImages.Append(image);
103
hgs
parents: 36
diff changeset
    52
            if (err != KErrNone)
hgs
parents: 36
diff changeset
    53
            	{
hgs
parents: 36
diff changeset
    54
				image.Close();
hgs
parents: 36
diff changeset
    55
				return err;
hgs
parents: 36
diff changeset
    56
            	}
hgs
parents: 36
diff changeset
    57
            if (aDuplicate)
hgs
parents: 36
diff changeset
    58
            	{
hgs
parents: 36
diff changeset
    59
				RSgImage image2;
hgs
parents: 36
diff changeset
    60
				err = image2.Open(image.Id());
hgs
parents: 36
diff changeset
    61
				if (err != KErrNone)
hgs
parents: 36
diff changeset
    62
					{
hgs
parents: 36
diff changeset
    63
					return err;
hgs
parents: 36
diff changeset
    64
					}
hgs
parents: 36
diff changeset
    65
				// send the image ID to the second process and wait until the
hgs
parents: 36
diff changeset
    66
				// second process has opened and closed a handle to the image
hgs
parents: 36
diff changeset
    67
				TRequestStatus status;
hgs
parents: 36
diff changeset
    68
				iSecondProcess.Rendezvous(status);
hgs
parents: 36
diff changeset
    69
				iMsgQ.SendBlocking(image.Id());
hgs
parents: 36
diff changeset
    70
				User::WaitForRequest(status);
hgs
parents: 36
diff changeset
    71
				image2.Close();
hgs
parents: 36
diff changeset
    72
				err = status.Int();
hgs
parents: 36
diff changeset
    73
            	}
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
            }
103
hgs
parents: 36
diff changeset
    75
        }
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
    return err;
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
    }
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
void CTSgGenericManual::DestroyImages(RArray<RSgImage>& aTestImages)
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
    {
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
    TInt count = aTestImages.Count();
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
    for(TInt i=0; i<count; ++i)
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
        {
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
        aTestImages[i].Close();
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
        }   
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
    aTestImages.Reset();    
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
    }
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
/** 
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
@leave Gets system wide error code
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
@return TVerdict code
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
*/
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
TVerdict CTSgGenericManual::doTestStepL()
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
	{	
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
    SetTestStepID(_L("GRAPHICS-RESOURCE-0050"));
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
    INFO_PRINTF1(_L("RSgImage generic resource leak stress test.\r\n"));
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
    TestStressResourceLeakL();
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
	RecordTestResultL();
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
	
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
	return TestStepResult();
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
	}
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
/**
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
@SYMTestCaseID          GRAPHICS-RESOURCE-0050
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
@SYMTestCaseDesc        RSgImage exhaustive and resource leak test
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
@SYMPREQ                PREQ2637
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
@SYMFssID               RSgImage::Create(const TSgImageInfo&, const TAny*, TInt)
103
hgs
parents: 36
diff changeset
   108
                        RSgImage::Open(TSgDrawableId)
hgs
parents: 36
diff changeset
   109
                        RSgImage::Close()
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
@SYMTestPriority        Medium
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
@SYMTestType            CT
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
@SYMTestPurpose         To ensure no resource leaks while creating and destroying RSgImage multiple times
103
hgs
parents: 36
diff changeset
   113
@SYMTestActions         Create images until it returns no memory error. Close the created images and          
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
                        create as many images as possible until memory is full. Test the number of images
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
                        created and also for each iteration the number of images created to be the same.
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
@SYMTestExpectedResults There should be no panics or leaves.
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
 */
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
void CTSgGenericManual::TestStressResourceLeakL()
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
    {
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
    TestOpenDriverL();
103
hgs
parents: 36
diff changeset
   121
    _LIT(KSection, "TestStressResourceLeak");
hgs
parents: 36
diff changeset
   122
    TInt numIterations;
hgs
parents: 36
diff changeset
   123
    if (!GetIntFromConfig(KSection, _L("NumIterations"), numIterations))
hgs
parents: 36
diff changeset
   124
    	{
hgs
parents: 36
diff changeset
   125
		numIterations = 2;
hgs
parents: 36
diff changeset
   126
    	}
hgs
parents: 36
diff changeset
   127
    TInt tolerance;
hgs
parents: 36
diff changeset
   128
    if (!GetIntFromConfig(KSection, _L("Tolerance"), tolerance))
hgs
parents: 36
diff changeset
   129
    	{
hgs
parents: 36
diff changeset
   130
		tolerance = -1;
hgs
parents: 36
diff changeset
   131
    	}
hgs
parents: 36
diff changeset
   132
    TInt width;
hgs
parents: 36
diff changeset
   133
    if (!GetIntFromConfig(KSection, _L("ImageWidth"), width))
hgs
parents: 36
diff changeset
   134
    	{
hgs
parents: 36
diff changeset
   135
		width = 1;
hgs
parents: 36
diff changeset
   136
    	}
hgs
parents: 36
diff changeset
   137
    TInt height;
hgs
parents: 36
diff changeset
   138
    if (!GetIntFromConfig(KSection, _L("ImageHeight"), height))
hgs
parents: 36
diff changeset
   139
    	{
hgs
parents: 36
diff changeset
   140
		height = 1;
hgs
parents: 36
diff changeset
   141
    	}
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
    TSgImageInfo info;
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
    info.iPixelFormat = EUidPixelFormatRGB_565;
103
hgs
parents: 36
diff changeset
   144
    info.iSizeInPixels = TSize(width, height);
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
    info.iUsage = ESgUsageBitOpenVgImage;
103
hgs
parents: 36
diff changeset
   146
    TBool duplicate;
hgs
parents: 36
diff changeset
   147
    if (!GetBoolFromConfig(KSection, _L("DuplicateHandle"), duplicate))
hgs
parents: 36
diff changeset
   148
    	{
hgs
parents: 36
diff changeset
   149
		duplicate = EFalse;
hgs
parents: 36
diff changeset
   150
    	}
hgs
parents: 36
diff changeset
   151
    if (duplicate)
hgs
parents: 36
diff changeset
   152
    	{
hgs
parents: 36
diff changeset
   153
		User::LeaveIfError(iMsgQ.CreateGlobal(KSgTestMultiprocessMsgQ, 1));
hgs
parents: 36
diff changeset
   154
		_LIT(KProcessName, "tgraphicsresourcemanualsecondprocess.exe");
hgs
parents: 36
diff changeset
   155
		User::LeaveIfError(iSecondProcess.Create(KProcessName, KNullDesC));
hgs
parents: 36
diff changeset
   156
		iSecondProcess.Resume();
hgs
parents: 36
diff changeset
   157
    	}
hgs
parents: 36
diff changeset
   158
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
    RArray<RSgImage> testImages;    
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
    
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
    TInt count(0);
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
    TInt err = KErrNone;
103
hgs
parents: 36
diff changeset
   163
    for (TInt i = 0; i < numIterations && err == KErrNone; ++i)
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
        {
103
hgs
parents: 36
diff changeset
   165
        err = CreateImages(info, testImages, duplicate);
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
        TInt thisCount = testImages.Count();
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
        DestroyImages(testImages);
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
        if (err == KErrNoMemory || err == KErrNoGraphicsMemory)
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
        	{
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
        	err = KErrNone;
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
        	}
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
        else if (err != KErrNone)
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
        	{
103
hgs
parents: 36
diff changeset
   175
        	WARN_PRINTF2(_L("Create images error [%d]"), err);
hgs
parents: 36
diff changeset
   176
        	SetTestStepResult(ETestSuiteError);
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
        	}
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
      
103
hgs
parents: 36
diff changeset
   179
        if (i == 0)
hgs
parents: 36
diff changeset
   180
        	{
hgs
parents: 36
diff changeset
   181
			count = thisCount;
hgs
parents: 36
diff changeset
   182
        	}
hgs
parents: 36
diff changeset
   183
        else
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
            {
103
hgs
parents: 36
diff changeset
   185
			if (count != thisCount)
hgs
parents: 36
diff changeset
   186
				{
hgs
parents: 36
diff changeset
   187
				INFO_PRINTF4(_L("Mismatch @ iteration %d: initial %d, now %d"), i,  count, thisCount);
hgs
parents: 36
diff changeset
   188
				}
hgs
parents: 36
diff changeset
   189
			if (tolerance >= 0)
hgs
parents: 36
diff changeset
   190
				{
hgs
parents: 36
diff changeset
   191
				TEST(Abs(count - thisCount) <= tolerance);
hgs
parents: 36
diff changeset
   192
				}
hgs
parents: 36
diff changeset
   193
            }
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
        }
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
    
103
hgs
parents: 36
diff changeset
   196
    INFO_PRINTF2(_L("Last iteration: %d images created\r\n"), count);
hgs
parents: 36
diff changeset
   197
    if (duplicate)
hgs
parents: 36
diff changeset
   198
    	{
hgs
parents: 36
diff changeset
   199
		// send a null ID to tell the second process to kill itself
hgs
parents: 36
diff changeset
   200
		// and wait until the second process terminates
hgs
parents: 36
diff changeset
   201
		TRequestStatus status;
hgs
parents: 36
diff changeset
   202
		iSecondProcess.Logon(status);
hgs
parents: 36
diff changeset
   203
		iMsgQ.SendBlocking(KSgNullDrawableId);
hgs
parents: 36
diff changeset
   204
		User::WaitForRequest(status);
hgs
parents: 36
diff changeset
   205
		iMsgQ.Close();
hgs
parents: 36
diff changeset
   206
		iSecondProcess.Close();
hgs
parents: 36
diff changeset
   207
    	}
36
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
    TestCloseDriver();
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
    }
01a6848ebfd7 Revision: 201009
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210