os/graphics/egl/egltest/scripts/egltest_t_stress_sgimage.script
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
     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".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 ////////////////////////////////////////////////////////////////////
    16 // egltest_t_stress_sgimage.script
    17 //
    18 // EGL stress tests accessing rsgimage objects shared across
    19 // processes.
    20 //
    21 ////////////////////////////////////////////////////////////////////
    22 
    23 //! @SYMTestSuiteName			egltest_t_stress_sgimage
    24 PRINT Run Stress Tests
    25 LOAD_SUITE egltestserver
    26 
    27 //! @SYMTestCaseID GRAPHICS-EGL-0427
    28 //! @SYMPREQ 2637
    29 //! @SYMCreationDate 03/11/2009
    30 //! @SYMTestCaseDependencies egltest_t_stress_sgimage.script
    31 //! @SYMTestType IT
    32 //! @SYMTestCaseDesc
    33 //! Functional test – Open the same RSgImage from multiple processes
    34 //! 
    35 //! @SYMTestPurpose
    36 //! To determine that multiple processes can open the same RSgImage simultaneously and accurately read its contents.
    37 //! 
    38 //! @SYMTestActions
    39 //! Environmental settings:
    40 //! •   Image Size: w32 h32
    41 //! •   List of simulated load: 0%, 30% 50% and 70%
    42 //! •   List of pixel formats
    43 //! ESgPixelFormatARGB_8888_PRE
    44 //! •   Client process priorities - all the same
    45 //! 
    46 //! The creation of RSgImages and launching of processes is along the lines of the method outlined in GRAPHICS-EGL-RSGIMAGE_LITE-0406
    47 //! The Number of client processes is configurable, suggested values are in parentheses.
    48 //! 
    49 //! For each simulated CPU load
    50 //!     From the main process:
    51 //!     Start SimLoadApp
    52 //!     Open the RSgDriver
    53 //!     Create an RSgImage
    54 //! Create a pixmap surface from the RSgImage and populate with known data content (e.g. by using vgClear to paint the surface blue)
    55 //! 
    56 //!     Spawn N (100) client processes and pass the RSgImage drawable ID to each one.
    57 //!     Signal all client processes to start by use of a semaphore
    58 //! 
    59 //!     From each client process:
    60 //!     Open RSgDriver
    61 //!     Open RSgImage using the drawable ID passed from the main process
    62 //!     Create EGLImage and then a VGImage
    63 //!     Close the RSgImage and the EGLImage
    64 //!     Create a pixmap surface
    65 //! 
    66 //!     Repeat 100 times
    67 //!         Copy the VGImage to the pixmap surface
    68 //!         Access the pixel data of the pixmap surface (e.g. by using vgReadPixels) and verify that it matches that populated by the main process
    69 //! 
    70 //!     Destroy the pixmap surface
    71 //!     Close VGImage and RSgDriver
    72 //!     Exit
    73 //! 
    74 //!     Main Process:
    75 //!     Repeat 100 times
    76 //!         Access the pixel data of the pixmap surface (e.g. by using vgReadPixels) and verify that it matches that populated initially
    77 //! 
    78 //!     Wait until all client processes exit and test the exit code
    79 //!     Destroy the pixmap surface
    80 //!     Close the RSgImage
    81 //!    Kill SimLoadApp
    82 //!     Exit
    83 //! 
    84 //! @SYMTestStatus Implemented
    85 //! @SYMTestPriority 1
    86 //! @SYMTestExpectedResults
    87 //! All processes should run to completion and terminate with KErrNone
    88 
    89 //!The suffix on the test case id denotes the level of the simulated
    90 //!load on the processor 000 -> 0% 030 -> 30% 050 -> 50% 070 -> 70%
    91 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0427-000
    92 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressReadOnly-000
    93 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0427-000
    94 
    95 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0427-030
    96 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressReadOnly-030
    97 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0427-030
    98 
    99 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0427-050
   100 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressReadOnly-050
   101 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0427-050
   102 
   103 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0427-070
   104 RUN_TEST_STEP 400 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressReadOnly-070
   105 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0427-070
   106 
   107 
   108 //! @SYMTestCaseID GRAPHICS-EGL-0425
   109 //! @SYMPREQ 2637
   110 //! @SYMCreationDate 03/08/2009
   111 //! @SYMTestCaseDependencies egltest_t_stress_sgimage.script
   112 //! @SYMTestType IT
   113 //! @SYMTestCaseDesc
   114 //! Stress test – Create and open 100 RSgImages in a specific format under various CPU load
   115 //! 
   116 //! @SYMTestPurpose
   117 //! To determine that the system can cope with a large number of RSgImages being accessed at the same time
   118 //! 
   119 //! @SYMTestActions
   120 //! Environmental settings:
   121 //! •   Image Size: w32 h32
   122 //! •   List of simulated load: 0%, 30% 50% and 70%
   123 //! •   List of pixel format: ESgPixelFormatARGB_8888_PRE
   124 //! •   Client process priorities - all the same
   125 //! 
   126 //! The creation of RSgImages and launching of processes is along the lines of the method outlined in GRAPHICS-EGL-RSGIMAGE_LITE-0406
   127 //! The Number of client processes is configurable, suggested values are in parentheses.
   128 //! 
   129 //! Main process:
   130 //! For each simulated CPU load
   131 //!     In the main process
   132 //!     Start SimLoadApp
   133 //! 
   134 //!     Open the RSgDriver
   135 //!     Create N (100) RSgImages with no content
   136 //!     For each RSgImage
   137 //!         Create EGLImage and then VGImage
   138 //!         Close EGLImage and RSgImage
   139 //!     End loop
   140 //!     Spawn N (100) client processes and pass a unique RSgImage drawable ID to each one.
   141 //! 
   142 //!     From each client process:
   143 //!     Open RSgDriver
   144 //!     Open RSgImage using the drawable ID passed from the main process
   145 //!     Create EGLImage and then a VGImage
   146 //!     Close the RSgImage and the EGLImage
   147 //!     Create pixmap surface
   148 //! 
   149 //!     Main Process:
   150 //!     Repeat 1000 times
   151 //!         Update each VGImage data using vgImageSubData
   152 //!     End loop
   153 //! 
   154 //!     From each client process:
   155 //!     Repeat 100 times
   156 //!         Draw VGImage using vgDrawImage into the pixmap surface
   157 //!     End loop
   158 //!     Destroy pixmap surface
   159 //!     Close VGImage and RSgDriver
   160 //!     Exit
   161 //! 
   162 //!     Main Process:
   163 //!     Wait until all client processes exit
   164 //!     Close all VGImages and the RSgDriver
   165 //!     Kill SimLoadApp
   166 //!     Exit
   167 //! 
   168 //! @SYMTestStatus Implemented
   169 //! @SYMTestPriority 1
   170 //! @SYMTestExpectedResults
   171 //! All processes should run to completion and terminate correctly with KErrNone
   172 
   173 //!The suffix on the test case id denotes the level of the simulated
   174 //!load on the processor 000 -> 0% 030 -> 30% 050 -> 50% 070 -> 70%
   175 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0425-000
   176 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressVGImage-000
   177 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0425-000
   178 
   179 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0425-030
   180 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressVGImage-030
   181 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0425-030
   182 
   183 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0425-050
   184 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressVGImage-050
   185 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0425-050
   186 
   187 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0425-070
   188 RUN_TEST_STEP 400 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressVGImage-070
   189 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0425-070
   190 
   191 //! @SYMTestCaseID GRAPHICS-EGL-0426
   192 //! @SYMPREQ 2637
   193 //! @SYMCreationDate 03/08/2009
   194 //! @SYMTestCaseDependencies egltest_t_stress_sgimage.script
   195 //! @SYMTestType IT
   196 //! @SYMTestCaseDesc
   197 //! Stress test – Create and open 100 RSgImages in different pixel format under various CPU loads
   198 //! 
   199 //! @SYMTestPurpose
   200 //! To determine that the system can cope with a large number of RSgImages being accessed at the same time
   201 //! 
   202 //! @SYMTestActions
   203 //! Environmental settings:
   204 //! •   Image Size: w64 h64
   205 //! •   List of simulated load: 0%, 30% 50% and 70%
   206 //! •   List of pixel format: ARGB_8888_PRE, ARGB_8888, XRGB_8888 and RGB_565
   207 //! •   Client process priorities - all the same
   208 //! 
   209 //! The creation of RSgImages and launching of processes is along the lines of the method outlined in GRAPHICS-EGL-RSGIMAGE_LITE-0406
   210 //! The Number of client processes is configurable, suggested values are in parentheses.
   211 //! 
   212 //! Main process:
   213 //! For each simulated CPU load and each pixel format
   214 //!     In the main process
   215 //!     Start SimLoadApp
   216 //! 
   217 //!     Open the RSgDriver
   218 //!     Create N (100) RSgImages with no content
   219 //!     For each RSgImage
   220 //!         Create EGL pixmap surface
   221 //!         Close RSgImage
   222 //!     End loop
   223 //!     Spawn N (100) client processes and pass a unique RSgImage drawable ID to each one.
   224 //! 
   225 //!     From each client process:
   226 //!     Open RSgDriver
   227 //!     Open RSgImage using the drawable ID passed from process A
   228 //!     Create EGLImage and then a VGImage
   229 //!     Close the RSgImage and the EGLImage
   230 //!     Create pixmap surface
   231 //! 
   232 //!     Main Process:
   233 //!     Repeat 1000 times
   234 //!         Update each EGL pixmap surface using vgClear with different colour
   235 //!         each time
   236 //!     End loop
   237 //! 
   238 //!     From each client process:
   239 //!     Repeat 1000 times
   240 //!        Draw VGImage using vgDrawImage into pixmap surface
   241 //!    End loop
   242 //!    Destroy pixmap surface
   243 //!    Close VGImage and RSgDriver
   244 //!    Exit
   245 //!
   246 //!    Main process:
   247 //!    Wait until all client processes exit
   248 //!    Close all EGL pixmap surfaces and the RSgDriver
   249 //!    Kill SimLoadApp
   250 //!    Exit
   251 //!
   252 //! @SYMTestStatus Implemented
   253 //! @SYMTestPriority 1
   254 //! @SYMTestExpectedResults
   255 //! All processes should run to completion and terminate with KErrNone
   256 
   257 //!The suffix on the test case id denotes the level of the simulated
   258 //!load on the processor 000 -> 0% 030 -> 30% 050 -> 50% 070 -> 70%
   259 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0426-000
   260 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressPixmapSurface-000
   261 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0426-000
   262 
   263 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0426-030
   264 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressPixmapSurface-030
   265 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0426-030
   266 
   267 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0426-050
   268 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressPixmapSurface-050
   269 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0426-050
   270 
   271 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0426-070
   272 RUN_TEST_STEP 400 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressPixmapSurface-070
   273 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0426-070
   274 
   275 //! @SYMTestCaseID GRAPHICS-EGL-0428
   276 //! @SYMPREQ 2637
   277 //! @SYMCreationDate 03/11/2009
   278 //! @SYMTestCaseDependencies egltest_t_stress_sgimage.script
   279 //! @SYMTestType IT
   280 //! @SYMTestCaseDesc
   281 //! Functional test – Open the same RSgImage from multiple processes
   282 //! Note: As data integrity cannot be guaranteed on all implementations, the pixel value checking aspects of this test can be regarded as optional.
   283 //! 
   284 //! @SYMTestPurpose
   285 //! To determine that multiple processes can open the same RSgImage simultaneously and modify its content.
   286 //! 
   287 //! @SYMTestActions
   288 //! Environmental settings:
   289 //! •   Image Size: w1024 h1024
   290 //! •   List of simulated load: 0%, 30% 50% and 70%
   291 //! •   List of pixel formats
   292 //! ESgPixelFormatARGB_565
   293 //! •   Client process priorities - all the same
   294 //! 
   295 //! The creation of RSgImages and launching of processes is along the lines of the method outlined in GRAPHICS-EGL-RSGIMAGE_LITE-0406
   296 //! The Number of client processes is configurable, suggested values are in parentheses.
   297 //! 
   298 //! For each simulated CPU load
   299 //!     From the main process:
   300 //!     Start SimLoadApp
   301 //!     Open the RSgDriver
   302 //!     Create an RSgImage
   303 //!     Create a pixmap surface from the RSgImage and populate with known data content (e.g. by using vgClear to paint the surface blue)
   304 //! 
   305 //!     Spawn N (100) client processes and pass the RSgImage drawable ID to each one.
   306 //!     Signal all client processes to start by use of a semaphore
   307 //! 
   308 //!     From each client process:
   309 //!     Open RSgDriver
   310 //!     Open RSgImage using the drawable ID passed from the main process
   311 //!     Create EGLImage and then a VGImage
   312 //!     Close the RSgImage and the EGLImage
   313 //! 
   314 //!     Loop until exit condition met
   315 //!     Start loop:
   316 //!         Read the data from the VGImage into a local buffer using vgGetSubImageData
   317 //!         Read the data from the beginning of the buffer one pixel at time
   318 //!         Test that the pixel colour is either blue or red.
   319 //!         Locate the first blue pixel in the buffer and paint it red
   320 //!         Copy the buffer back to the VGImage using vgSubImageData
   321 //!         Exit conditiom - no blue pixels can be found:
   322 //!     End loop:
   323 //! 
   324 //!     Close VGImage and RSgDriver
   325 //!     Exit
   326 //! 
   327 //!     Main Process:
   328 //!     Loop until exit condition met
   329 //!    Start loop:
   330 //!         Read the data from the pixmap surface into a local buffer using vgReadPixels
   331 //!         Read the data from the beginning of the buffer one pixel at time
   332 //!         Test that the pixel colour is either blue or red.
   333 //!         Locate the first blue pixel in the surface and paint it red
   334 //!         Copy the buffer back to the surface using vgWritePixels
   335 //!        Exit condition - no blue pixels can be found:
   336 //!     End loop:
   337 //! 
   338 //!     Wait until all client processes exit and test the exit code
   339 //!     Destroy the pixmap surface
   340 //!     Close the RSgImage and RSgDriver
   341 //!     Kill SimLoadApp
   342 //!     Exit
   343 //! 
   344 //! @SYMTestStatus Implemented
   345 //! @SYMTestPriority 1
   346 //! @SYMTestExpectedResults
   347 //! All processes should run to completion and terminate with KErrNone
   348 
   349 //!The suffix on the test case id denotes the level of the simulated
   350 //!load on the processor 000 -> 0% 030 -> 30% 050 -> 50% 070 -> 70%
   351 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0428-000
   352 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressReadWriteSingleImage-000
   353 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0428-000
   354 
   355 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0428-030
   356 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressReadWriteSingleImage-030
   357 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0428-030
   358 
   359 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0428-050
   360 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressReadWriteSingleImage-050
   361 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0428-050
   362 
   363 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0428-070
   364 RUN_TEST_STEP 400 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressReadWriteSingleImage-070
   365 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0428-070
   366 
   367 //! @SYMTestCaseID GRAPHICS-EGL-0437
   368 //! @SYMPREQ 2637
   369 //! @SYMCreationDate 03/11/2009
   370 //! @SYMTestCaseDependencies egltest_t_stress_sgimage.script
   371 //! @SYMTestType IT
   372 //! @SYMTestCaseDesc
   373 //! Stress test – Access multiple RSgImages from multiple processes
   374 //! Note: As data integrity cannot be guaranteed on all implementations, the pixel value checking aspects of this test can be regarded as optional.
   375 //! 
   376 //! @SYMTestPurpose
   377 //! To determine that multiple processes can open RSgImages simultaneously and modify their contents.
   378 //! 
   379 //! @SYMTestActions
   380 //! Environmental settings:
   381 //! •   Image Size: w1024 h1024
   382 //! •   List of simulated load: 0%, 30% 50% and 70%
   383 //! 
   384 //! •   List of pixel formats
   385 //! ESgPixelFormatARGB_8888
   386 //! •   Client process priorities - all the same
   387 //! 
   388 //! This test case differs from GRAPHICS-EGL-0428 in that
   389 //! 1.  The environmental settings differ
   390 //! 2.  In GRAPHICS-EGL-0428, the main and client processes all read and write to a single RSgImage, but in this test case, the main process reads and writes to 10 RSgImages and the (100) client processes each access a single unique RSgImage each
   391 //! 
   392 //! @SYMTestStatus Implemented
   393 //! @SYMTestPriority 1
   394 //! @SYMTestExpectedResults
   395 //! All processes should run to completion and terminate with KErrNone
   396 
   397 //!The suffix on the test case id denotes the level of the simulated
   398 //!load on the processor 000 -> 0% 030 -> 30% 050 -> 50% 070 -> 70%
   399 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0437-000
   400 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressReadWriteMultiImage-000
   401 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0437-000
   402 
   403 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0437-030
   404 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressReadWriteMultiImage-030
   405 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0437-030
   406 
   407 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0437-050
   408 RUN_TEST_STEP 200 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressReadWriteMultiImage-050
   409 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0437-050
   410 
   411 START_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0437-070
   412 RUN_TEST_STEP 400 egltestserver	Stress		z:\egltest\egltest_stress_sgimage.ini StressReadWriteMultiImage-070
   413 END_TESTCASE 	GRAPHICS-EGL-RSGIMAGE_LITE-0437-070