os/graphics/egl/egltest/endpointtestsuite/automated/tsrc/egltest_endpoint_stresstests.cpp
Update contrib.
1 // Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
19 @internalComponent - Internal Symbian test code
22 #include "egltest_endpoint_stresstests.h"
23 #include "egltest_endpoint_engine.h"
26 // an example of table with "random order numbers 0..3".
27 static const TInt KImageTable[] = { 1, 3, 0, 2, 3, 1, 2, 0 };
29 static TStressTestSection test588A[] =
31 1, EOnErrorPolicyFail,
34 { EInitializeCase, 0, EGL_SUCCESS },
37 100, EOnErrorPolicyBreak,
38 { PARAM_DECL_ITER(0, 100, 1) },
40 { ECreateSurfaceCase, 0, EGL_SUCCESS, PARAM0(0), EStandardSurface },
43 100, EOnErrorPolicyBreak,
44 { PARAM_DECL_ITER(0, 100, 1), PARAM_DECL_TABLE(KImageTable) },
46 { ECreateEndpointCase, 0, EGL_SUCCESS, PARAM0(0) },
47 { EDrawContentCase, 0, EGL_SUCCESS, PARAM0(0), PARAM1(0) },
48 { EContentUpdateCase, 0, EGL_SUCCESS, PARAM0(0) },
49 { EBeginStreamingCase, 0, EGL_SUCCESS, PARAM0(0) },
50 { EAcquireImageCase, 0, EGL_SUCCESS, PARAM0(0) },
51 { ECompareImageCase, 0, EGL_SUCCESS, PARAM0(0), PARAM1(0) },
52 { EReleaseImageCase, 0, EGL_SUCCESS, PARAM0(0), PARAM0(0) },
53 { EDestroyEndpointCase, 0, EGL_SUCCESS, PARAM0(0) },
56 1, EOnErrorPolicyFail,
59 { ETerminateCase, 0, EGL_SUCCESS },
64 static TStressTestSection test588B[] =
66 1, EOnErrorPolicyFail,
69 { EInitializeCase, 0, EGL_SUCCESS },
72 1000, EOnErrorPolicyBreak,
73 { PARAM_DECL_ITER(0, 1000, 1) },
75 { ECreateSurfaceCase, 0, EGL_SUCCESS, PARAM0(0), EStandardSurface },
76 { ECreateEndpointCase, 0, EGL_SUCCESS, PARAM0(0) },
77 { EDrawContentCase, 0, EGL_SUCCESS, PARAM0(0), PARAM0(0) },
78 { EContentUpdateCase, 0, EGL_SUCCESS, PARAM0(0) },
79 { EBeginStreamingCase, 0, EGL_SUCCESS, PARAM0(0) },
80 { EAcquireImageCase, 0, EGL_SUCCESS, PARAM0(0) },
83 1000, EOnErrorPolicyBreak,
84 { PARAM_DECL_ITER(0, 1000, 1) },
86 { EReleaseImageCase, 0, EGL_SUCCESS, PARAM0(0), PARAM0(0) },
87 { EDestroyEndpointCase, 0, EGL_SUCCESS, PARAM0(0) },
90 1, EOnErrorPolicyFail,
93 { ETerminateCase, 0, EGL_SUCCESS },
98 static TStressTestSection test589[] =
100 1, EOnErrorPolicyFail,
103 { EInitializeCase, 0, EGL_SUCCESS },
104 { ECreateSurfaceCase, 0, EGL_SUCCESS, 0, ELargestPossibleSurface },
105 { ECreateEndpointCase, 0, EGL_SUCCESS, 0 },
108 5, EOnErrorPolicyBreak,
109 { PARAM_DECL_ITER(0, 4, 1) },
111 { EDrawContentCase, 0, EGL_SUCCESS, 0, PARAM0(0) },
112 { EContentUpdateCase, 0, EGL_SUCCESS, 0 },
113 { EBeginStreamingCase, 0, EGL_SUCCESS, 0 },
114 { EAcquireImageCase, 0, EGL_SUCCESS, 0 },
115 { ECompareImageCase, 0, EGL_SUCCESS, 0, PARAM0(0) },
116 { EReleaseImageCase, 0, EGL_SUCCESS, 0 },
119 1, EOnErrorPolicyFail,
122 { EDestroyEndpointCase, 0, EGL_SUCCESS, 0 },
123 { EDestroySurfaceCase, 0, EGL_SUCCESS, 0 },
124 { ETerminateCase, 0, EGL_SUCCESS },
129 static TStressTestSection test590A[] =
131 1, EOnErrorPolicyFail,
134 { EInitializeCase, 0, EGL_SUCCESS },
135 { ECreateSurfaceCase, 0, EGL_SUCCESS, 0, EStandardSurface },
136 { ECreateEndpointCase, 0, EGL_SUCCESS, 0 },
139 1000, EOnErrorPolicyBreak,
140 { PARAM_DECL_TABLE(KImageTable) },
142 { EDrawContentCase, 0, EGL_SUCCESS, 0, PARAM0(0)},
143 { EContentUpdateCase, 0, EGL_SUCCESS, 0 },
144 { EBeginStreamingCase, 0, EGL_SUCCESS, 0 },
145 { EAcquireImageCase, 0, EGL_SUCCESS, 0 },
146 { ECompareImageCase, 0, EGL_SUCCESS, 0, PARAM0(0) },
147 { EReleaseImageCase, 0, EGL_SUCCESS, 0 },
150 1, EOnErrorPolicyFail,
153 { EDestroyEndpointCase, 0, EGL_SUCCESS, 0 },
154 { ETerminateCase, 0, EGL_SUCCESS },
159 static TStressTestSection test590B[] =
161 1, EOnErrorPolicyFail,
164 { EInitializeCase, 0, EGL_SUCCESS },
167 260, EOnErrorPolicyBreak,
168 {PARAM_DECL_ITER(0, 260, 1), PARAM_DECL_TABLE(KImageTable)},
170 { ECreateSurfaceCase, 0, EGL_SUCCESS, PARAM0(0), EStandardSurface },
171 { ECreateEndpointCase, 0, EGL_SUCCESS, PARAM0(0) },
172 { EDrawContentCase, 0, EGL_SUCCESS, PARAM0(0), PARAM1(0)},
173 { EContentUpdateCase, 0, EGL_SUCCESS, PARAM0(0) },
174 { EBeginStreamingCase, 0, EGL_SUCCESS, PARAM0(0) },
175 { EAcquireImageCase, 0, EGL_SUCCESS, PARAM0(0) },
176 { ECompareImageCase, 0, EGL_SUCCESS, PARAM0(0), PARAM1(0)},
179 260, EOnErrorPolicyBreak,
180 {PARAM_DECL_ITER(0, 260, 1)},
182 { EReleaseImageCase, 0, EGL_SUCCESS, PARAM0(0), PARAM0(0) },
183 { EDestroyEndpointCase, 0, EGL_SUCCESS, PARAM0(0) },
186 1, EOnErrorPolicyFail,
189 { ETerminateCase, 0, EGL_SUCCESS },
194 static TStressTestSection test592A[] =
196 1, EOnErrorPolicyFail,
199 { EInitializeCase, 0, EGL_SUCCESS },
200 { ECreateSurfaceCase, 0, EGL_SUCCESS, 0, EStandardSurface },
203 1000, EOnErrorPolicyBreak,
204 { PARAM_DECL_TABLE(KImageTable) },
206 { ECreateEndpointCase, 0, EGL_SUCCESS, 0 },
207 { EDrawContentCase, 0, EGL_SUCCESS, 0, PARAM0(0)},
208 { EContentUpdateCase, 0, EGL_SUCCESS, 0 },
209 { EBeginStreamingCase, 0, EGL_SUCCESS, 0 },
210 { EAcquireImageCase, 0, EGL_SUCCESS, 0 },
211 { ECompareImageCase, 0, EGL_SUCCESS, 0, PARAM0(0)},
212 { EReleaseImageCase, 0, EGL_SUCCESS, 0 },
213 { EDestroyEndpointCase, 0, EGL_SUCCESS, 0 },
216 1, EOnErrorPolicyFail,
219 { ETerminateCase, 0, EGL_SUCCESS },
224 static TStressTestSection test592B[] =
226 1, EOnErrorPolicyFail,
229 { EInitializeCase, 0, EGL_SUCCESS },
232 1000, EOnErrorPolicyBreak,
233 { PARAM_DECL_TABLE(KImageTable) },
235 { ECreateSurfaceCase, 0, EGL_SUCCESS, 0, EStandardSurface },
236 { ECreateEndpointCase, 0, EGL_SUCCESS, 0 },
237 { EDrawContentCase, 0, EGL_SUCCESS, 0, PARAM0(0)},
238 { EContentUpdateCase, 0, EGL_SUCCESS, 0 },
239 { EBeginStreamingCase, 0, EGL_SUCCESS, 0 },
240 { EAcquireImageCase, 0, EGL_SUCCESS, 0 },
241 { ECompareImageCase, 0, EGL_SUCCESS, 0, PARAM0(0) },
242 { EReleaseImageCase, 0, EGL_SUCCESS, 0 },
243 { EDestroyEndpointCase, 0, EGL_SUCCESS, 0 },
244 { EDestroySurfaceCase, 0, EGL_SUCCESS, 0 },
247 1, EOnErrorPolicyFail,
250 { ETerminateCase, 0, EGL_SUCCESS },
254 static const TStressTestTable testTable[] =
260 CASETITLE("Functional: Stress: Test 100 surfaces."),
261 SurfaceTypes3(ESurfTypeRaw, ESurfTypeEglWindow, ESurfTypeRawSingleBuffered),
268 CASETITLE("Functional: Stress: Test 1000 surfaces, destroy after."),
269 SurfaceTypes3(ESurfTypeRaw, ESurfTypeEglWindow, ESurfTypeRawSingleBuffered),
276 CASETITLE("Functional: Stress: Test with largest possible surface"),
277 SurfaceTypes3(ESurfTypeRaw, ESurfTypeEglWindow, ESurfTypeRawSingleBuffered),
285 CASETITLE("Functional: Stress: Test with 1000 surface updates"),
286 SurfaceTypes3(ESurfTypeEglWindow, ESurfTypeRaw, ESurfTypeRawSingleBuffered),
294 CASETITLE("Functional: Stress: Test with 260 surfaces"),
295 SurfaceTypes3(ESurfTypeRaw, ESurfTypeEglWindow, ESurfTypeRawSingleBuffered),
302 CASETITLE("Functional: Stress: Large number of endpoint creation/destruction"),
303 SurfaceTypes3(ESurfTypeRaw, ESurfTypeEglWindow, ESurfTypeRawSingleBuffered),
310 CASETITLE("Functional: Stress: Large number of endpoint creation/destruction"),
311 SurfaceTypes3(ESurfTypeRaw, ESurfTypeEglWindow, ESurfTypeRawSingleBuffered),
319 CEglTest_TestStep_StressTests::CEglTest_TestStep_StressTests()
323 CEglTest_TestStep_StressTests* CEglTest_TestStep_StressTests::New()
325 CEglTest_TestStep_StressTests *self = new CEglTest_TestStep_StressTests;
329 self->ConstructL(testTable, sizeof(testTable)/sizeof(testTable[0]));