egl/egltest/endpointtestsuite/automated/tsrc/egltest_endpoint_stresstests.cpp
author hgs
Fri, 30 Jul 2010 11:41:40 +0300
changeset 136 62bb7c97884c
permissions -rw-r--r--
201030_2

// 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:
//

/**
 @file
 @test
 @internalComponent - Internal Symbian test code
*/

#include "egltest_endpoint_stresstests.h"
#include "egltest_endpoint_engine.h"


// an example of table with "random order numbers 0..3". 
static const TInt KImageTable[] = { 1, 3, 0, 2, 3, 1, 2, 0 };

static TStressTestSection test588A[] =
{
    1, EOnErrorPolicyFail,
    { NO_PARAMS },
    {
        { EInitializeCase,           0,                EGL_SUCCESS },
        { EFinishedCase }
    },
    100, EOnErrorPolicyBreak,
    { PARAM_DECL_ITER(0, 100, 1) },
    {
        { ECreateSurfaceCase,        0,              EGL_SUCCESS, PARAM0(0), EStandardSurface },
        { EFinishedCase }
    },
    100, EOnErrorPolicyBreak,
    { PARAM_DECL_ITER(0, 100, 1), PARAM_DECL_TABLE(KImageTable) },
    {
        { ECreateEndpointCase,       0,              EGL_SUCCESS, PARAM0(0) },
        { EDrawContentCase,          0,              EGL_SUCCESS, PARAM0(0), PARAM1(0) },
        { EContentUpdateCase,        0,              EGL_SUCCESS, PARAM0(0) },
        { EBeginStreamingCase,       0,              EGL_SUCCESS, PARAM0(0) },
        { EAcquireImageCase,         0,              EGL_SUCCESS, PARAM0(0) },
        { ECompareImageCase,         0,              EGL_SUCCESS, PARAM0(0), PARAM1(0) },
        { EReleaseImageCase,         0,              EGL_SUCCESS, PARAM0(0), PARAM0(0) },
        { EDestroyEndpointCase,      0,              EGL_SUCCESS, PARAM0(0) },
        { EFinishedCase }
    },
    1, EOnErrorPolicyFail,
    { NO_PARAMS },
    {
        { ETerminateCase,            0,              EGL_SUCCESS },
        { EFinishedCase }
    },
};

static TStressTestSection test588B[] =
{
    1, EOnErrorPolicyFail,
    { NO_PARAMS },
    {
        { EInitializeCase,           0,                EGL_SUCCESS },
        { EFinishedCase }
    },
    1000, EOnErrorPolicyBreak,
    { PARAM_DECL_ITER(0, 1000, 1) },
    {
        { ECreateSurfaceCase,        0,              EGL_SUCCESS, PARAM0(0), EStandardSurface },
        { ECreateEndpointCase,       0,              EGL_SUCCESS, PARAM0(0) },
        { EDrawContentCase,          0,              EGL_SUCCESS, PARAM0(0), PARAM0(0) },
        { EContentUpdateCase,        0,              EGL_SUCCESS, PARAM0(0) },
        { EBeginStreamingCase,       0,              EGL_SUCCESS, PARAM0(0) },
        { EAcquireImageCase,         0,              EGL_SUCCESS, PARAM0(0) },
        { EFinishedCase }
    },
    1000, EOnErrorPolicyBreak,
    { PARAM_DECL_ITER(0, 1000, 1) },
    {
        { EReleaseImageCase,         0,              EGL_SUCCESS, PARAM0(0), PARAM0(0) },
        { EDestroyEndpointCase,      0,              EGL_SUCCESS, PARAM0(0) },
        { EFinishedCase }
    },
    1, EOnErrorPolicyFail,
    { NO_PARAMS },
    {
        { ETerminateCase,            0,              EGL_SUCCESS },
        { EFinishedCase }
    },
};

static TStressTestSection test589[] =
{
    1, EOnErrorPolicyFail,
    { NO_PARAMS },
    {
        { EInitializeCase,           0,              EGL_SUCCESS },
        { ECreateSurfaceCase,        0,              EGL_SUCCESS, 0, ELargestPossibleSurface },
        { ECreateEndpointCase,       0,              EGL_SUCCESS, 0 },
        { EFinishedCase }
    },
    5, EOnErrorPolicyBreak,
    { PARAM_DECL_ITER(0, 4, 1) },
    {
        { EDrawContentCase,          0,              EGL_SUCCESS, 0, PARAM0(0) },
        { EContentUpdateCase,        0,              EGL_SUCCESS, 0 },
        { EBeginStreamingCase,       0,              EGL_SUCCESS, 0 },
        { EAcquireImageCase,         0,              EGL_SUCCESS, 0 },
        { ECompareImageCase,         0,              EGL_SUCCESS, 0, PARAM0(0) },
        { EReleaseImageCase,         0,              EGL_SUCCESS, 0 },
        { EFinishedCase }
    },
    1, EOnErrorPolicyFail,
    { NO_PARAMS },
    {
        { EDestroyEndpointCase,      0,              EGL_SUCCESS, 0 },
        { EDestroySurfaceCase,       0,              EGL_SUCCESS, 0 },
        { ETerminateCase,            0,              EGL_SUCCESS },
        { EFinishedCase }
    },
};

static TStressTestSection test590A[] =
{
    1, EOnErrorPolicyFail,
    { NO_PARAMS },
    {
        { EInitializeCase,          0,          EGL_SUCCESS },
        { ECreateSurfaceCase,       0,          EGL_SUCCESS, 0, EStandardSurface },
        { ECreateEndpointCase,      0,          EGL_SUCCESS, 0 },
        { EFinishedCase }
    },
    1000, EOnErrorPolicyBreak,
    { PARAM_DECL_TABLE(KImageTable) },
    {
        { EDrawContentCase,         0,         EGL_SUCCESS, 0, PARAM0(0)},
        { EContentUpdateCase,       0,         EGL_SUCCESS, 0 },
        { EBeginStreamingCase,      0,         EGL_SUCCESS, 0 },
        { EAcquireImageCase,        0,         EGL_SUCCESS, 0 },
        { ECompareImageCase,        0,         EGL_SUCCESS, 0, PARAM0(0) },
        { EReleaseImageCase,        0,         EGL_SUCCESS, 0 },
        { EFinishedCase }
    },
    1, EOnErrorPolicyFail,
    { NO_PARAMS },
    {
        { EDestroyEndpointCase,     0,          EGL_SUCCESS, 0 },
        { ETerminateCase,           0,          EGL_SUCCESS },
        { EFinishedCase }
    },
};

static TStressTestSection test590B[] =
{
    1, EOnErrorPolicyFail,
    { NO_PARAMS },
    {
        { EInitializeCase,          0,          EGL_SUCCESS },
        { EFinishedCase }
    },
    260, EOnErrorPolicyBreak,
    {PARAM_DECL_ITER(0, 260, 1), PARAM_DECL_TABLE(KImageTable)},
    {
        { ECreateSurfaceCase,       0,          EGL_SUCCESS, PARAM0(0), EStandardSurface },
        { ECreateEndpointCase,      0,          EGL_SUCCESS, PARAM0(0) },
        { EDrawContentCase,         0,          EGL_SUCCESS, PARAM0(0), PARAM1(0)},
        { EContentUpdateCase,       0,          EGL_SUCCESS, PARAM0(0) },
        { EBeginStreamingCase,      0,          EGL_SUCCESS, PARAM0(0) },
        { EAcquireImageCase,        0,          EGL_SUCCESS, PARAM0(0) },
        { ECompareImageCase,        0,          EGL_SUCCESS, PARAM0(0), PARAM1(0)},
        { EFinishedCase }
    },
    260, EOnErrorPolicyBreak,
    {PARAM_DECL_ITER(0, 260, 1)},
    {
        { EReleaseImageCase,        0,          EGL_SUCCESS, PARAM0(0), PARAM0(0) },
        { EDestroyEndpointCase,     0,          EGL_SUCCESS, PARAM0(0) },
        { EFinishedCase }
    },
    1, EOnErrorPolicyFail,
    { NO_PARAMS },
    {
        { ETerminateCase,           0,          EGL_SUCCESS },
        { EFinishedCase }
    },
};

static TStressTestSection test592A[] =
{
    1, EOnErrorPolicyFail,
    { NO_PARAMS },
    {
        { EInitializeCase,          0,          EGL_SUCCESS },
        { ECreateSurfaceCase,       0,          EGL_SUCCESS, 0, EStandardSurface },
        { EFinishedCase }
    },
    1000, EOnErrorPolicyBreak,
    { PARAM_DECL_TABLE(KImageTable) },
    {
        { ECreateEndpointCase,      0,          EGL_SUCCESS, 0 },
        { EDrawContentCase,         0,          EGL_SUCCESS, 0, PARAM0(0)},
        { EContentUpdateCase,       0,          EGL_SUCCESS, 0 },
        { EBeginStreamingCase,      0,          EGL_SUCCESS, 0 },
        { EAcquireImageCase,        0,          EGL_SUCCESS, 0 },
        { ECompareImageCase,        0,          EGL_SUCCESS, 0, PARAM0(0)},
        { EReleaseImageCase,        0,          EGL_SUCCESS, 0 },
        { EDestroyEndpointCase,     0,          EGL_SUCCESS, 0 },
        { EFinishedCase }
    },
    1, EOnErrorPolicyFail,
    { NO_PARAMS },
    {
        { ETerminateCase,           0,          EGL_SUCCESS },
        { EFinishedCase }
    },
};

static TStressTestSection test592B[] =
{
    1, EOnErrorPolicyFail,
    { NO_PARAMS },
    {
        { EInitializeCase,          0,          EGL_SUCCESS },
        { EFinishedCase }
    },
    1000, EOnErrorPolicyBreak,
    { PARAM_DECL_TABLE(KImageTable) },
    {
        { ECreateSurfaceCase,       0,          EGL_SUCCESS, 0, EStandardSurface },
        { ECreateEndpointCase,      0,          EGL_SUCCESS, 0 },
        { EDrawContentCase,         0,          EGL_SUCCESS, 0, PARAM0(0)},
        { EContentUpdateCase,       0,          EGL_SUCCESS, 0 },
        { EBeginStreamingCase,      0,          EGL_SUCCESS, 0 },
        { EAcquireImageCase,        0,          EGL_SUCCESS, 0 },
        { ECompareImageCase,        0,          EGL_SUCCESS, 0, PARAM0(0) },
        { EReleaseImageCase,        0,          EGL_SUCCESS, 0 },
        { EDestroyEndpointCase,     0,          EGL_SUCCESS, 0 },
        { EDestroySurfaceCase,      0,          EGL_SUCCESS, 0 },
        { EFinishedCase }
    },
    1,  EOnErrorPolicyFail,
    { NO_PARAMS },
    {
        { ETerminateCase,           0,          EGL_SUCCESS },
        { EFinishedCase }
    },
};
static const TStressTestTable testTable[] =
{
#if 0
    {
        {
        TESTIDS("588A"),
        CASETITLE("Functional: Stress: Test 100 surfaces."),
        SurfaceTypes3(ESurfTypeRaw, ESurfTypeEglWindow, ESurfTypeRawSingleBuffered),
        },
        TESTTABLE(test588A)
    },
    {
        {
        TESTIDS("588B"),
        CASETITLE("Functional: Stress: Test 1000 surfaces, destroy after."),
        SurfaceTypes3(ESurfTypeRaw, ESurfTypeEglWindow, ESurfTypeRawSingleBuffered),
        },
        TESTTABLE(test588B)
    },
    {
        {
        TESTIDS("589"),
        CASETITLE("Functional: Stress: Test with largest possible surface"),
        SurfaceTypes3(ESurfTypeRaw, ESurfTypeEglWindow, ESurfTypeRawSingleBuffered),
        },
        TESTTABLE(test589)
    }, 
#endif
    {
        {
        TESTIDS("590A"),
        CASETITLE("Functional: Stress: Test with 1000 surface updates"),
        SurfaceTypes3(ESurfTypeEglWindow, ESurfTypeRaw, ESurfTypeRawSingleBuffered),
        },
        TESTTABLE(test590A) 
    },
#if 0
    {
        {
        TESTIDS("590B"),
        CASETITLE("Functional: Stress: Test with 260 surfaces"),
        SurfaceTypes3(ESurfTypeRaw, ESurfTypeEglWindow, ESurfTypeRawSingleBuffered),
        },
        TESTTABLE(test590B)
    },
    {
        {
        TESTIDS("592A"),
        CASETITLE("Functional: Stress: Large number of endpoint creation/destruction"),
        SurfaceTypes3(ESurfTypeRaw, ESurfTypeEglWindow, ESurfTypeRawSingleBuffered),
        },
        TESTTABLE(test592A) 
    },   
    {
        {
        TESTIDS("592B"),
        CASETITLE("Functional: Stress: Large number of endpoint creation/destruction"),
        SurfaceTypes3(ESurfTypeRaw, ESurfTypeEglWindow, ESurfTypeRawSingleBuffered),
        },
        TESTTABLE(test592B)       
    },
#endif
};


CEglTest_TestStep_StressTests::CEglTest_TestStep_StressTests()
    {
    }

CEglTest_TestStep_StressTests* CEglTest_TestStep_StressTests::New()
    {
    CEglTest_TestStep_StressTests *self = new CEglTest_TestStep_StressTests;
    
    if (self)
        {
        self->ConstructL(testTable, sizeof(testTable)/sizeof(testTable[0]));
        }
    return self;
    }