localisation/apparchitecture/tef/tssaac/scripts/hardware/sysstart_apparc_run.bat
branchSymbian2
changeset 1 8758140453c0
child 6 c108117318cb
equal deleted inserted replaced
0:e8c1ea2c6496 1:8758140453c0
       
     1 @rem
       
     2 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 @rem All rights reserved.
       
     4 @rem This component and the accompanying materials are made available
       
     5 @rem under the terms of the License "Symbian Foundation License v1.0"
       
     6 @rem which accompanies this distribution, and is available
       
     7 @rem at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
       
     8 @rem
       
     9 @rem Initial Contributors:
       
    10 @rem Nokia Corporation - initial contribution.
       
    11 @rem
       
    12 @rem Contributors:
       
    13 @rem
       
    14 @rem Description:
       
    15 @rem
       
    16 @echo off
       
    17 setlocal
       
    18 
       
    19 call :initialise %1 %2
       
    20 if /i "%INPUT_ERROR%"=="true" goto :EOF
       
    21 
       
    22 call :test T_TestStartApp1L		01  
       
    23 
       
    24 :: if automation is not supported, then don't bother attempting to run
       
    25 :: the remaining test cases.
       
    26 if /i "%TEST_MANUAL_FLAG%"=="false" (if /i "%AUTOMATED_FLAG%"=="false" goto :EOF) 
       
    27       
       
    28 call :test T_TestStartApp2L		02        
       
    29 call :test T_TestStartApp3L		03     
       
    30 call :test T_TestStartApp4L		04	   
       
    31 call :test T_TestStartApp5L		05     
       
    32 call :test T_TestStartApp6L		06     
       
    33 call :test T_TestGetAllApps		07     
       
    34 call :test T_TestInsertDataTypeL	08
       
    35 call :test T_TestAppForDataTypeL	09 
       
    36 call :test T_TestDeleteDataTypeL	10 
       
    37 call :test T_TestServiceDiscovery	11  
       
    38 call :test T_TestGetAppInfo     	12
       
    39 call :test T_TestAppCount	    	13
       
    40 call :test T_TestCreateDoc      	14
       
    41 call :test T_TestLocalisedCaptionL	29
       
    42 
       
    43 goto :skipFunctions
       
    44 
       
    45 :help
       
    46 	echo.
       
    47 	echo Description:
       
    48 	echo This script runs the apparc startup test suite on the hardware
       
    49 	echo reference platform. 
       
    50 	echo.
       
    51 	echo Syntax:
       
    52 	echo %RUN_COMMAND% [choice] [hrp]
       
    53 	echo where the argument [choice] can be one of:
       
    54 	echo   "-h" or "help" - this help screen
       
    55 	echo   "manual"       - run scripts manually i.e. build auto 
       
    56 	echo                    start ROMs for each test case, but do  
       
    57 	echo                    not attempt to upload ROM
       
    58 	echo   "auto"         - run scripts in automated mode, i.e.
       
    59 	echo			requires USB download to HRP
       
    60 	echo and argument [hrp] is the hardware reference platform, e.g.
       
    61 	echo   "h2" or "h4hrp"
       
    62 	echo.
       
    63 	echo e.g.
       
    64 	echo %RUN_COMMAND% auto h4hrp
       
    65 	echo.
       
    66 goto :EOF
       
    67 
       
    68 :initialise
       
    69 	set APPFWK_COMPONENT=apparctest
       
    70 	set EPOC_Z=\epoc32\data\z
       
    71 
       
    72 	set BUILDROM_COMMAND=%EPOC_Z%\%APPFWK_COMPONENT%\sysstart_apparc_buildrom.bat
       
    73 	set CHECKEPOC_COMMAND=%EPOC_Z%\%APPFWK_COMPONENT%\sysstart_apparc_checkepocwind.bat
       
    74 	set INSERT_COMMAND=%EPOC_Z%\%APPFWK_COMPONENT%\sysstart_apparc_insertlog.pl
       
    75 	set RUN_COMMAND=%EPOC_Z%\%APPFWK_COMPONENT%\sysstart_apparc_run.bat
       
    76 
       
    77 	:: check input values
       
    78 	set INPUT_ERROR=false
       
    79 	set TEST_CHOICE=%1
       
    80 	if /i "%TEST_CHOICE%"=="-h" set INPUT_ERROR=true
       
    81 	if /i "%TEST_CHOICE%"=="help" set INPUT_ERROR=true
       
    82 	set TEST_MANUAL_FLAG=false
       
    83 	if /i "%TEST_CHOICE%"=="manual" set TEST_MANUAL_FLAG=true
       
    84 	set HARDWARE_REFERENCE_PLATFORM=%2
       
    85 	if /i "%HARDWARE_REFERENCE_PLATFORM%"=="" set INPUT_ERROR=true
       
    86 	if /i "%INPUT_ERROR%"=="true" call :help & goto :EOF
       
    87 	
       
    88 	set TEST_CASE=INIT_VALUE
       
    89 	set TEST_RSC=INIT_VALUE
       
    90 	set TEST_ROM_PORT=1
       
    91 	set TEST_CASE_TIMEOUT=60
       
    92 
       
    93 	set TEST_LOG_LOCATION=%EPOC_Z%\%APPFWK_COMPONENT%\logs
       
    94 	if not exist %TEST_LOG_LOCATION% md %TEST_LOG_LOCATION% 
       
    95 
       
    96 	set DABS_TEST_LOG_LOCATION=\logs\armv5
       
    97 
       
    98 	set TEST_LOG=%DABS_TEST_LOG_LOCATION%\%APPFWK_COMPONENT%.log
       
    99 	if exist %TEST_LOG% del %TEST_LOG%
       
   100 
       
   101 	set SUMMARY_LOG=%DABS_TEST_LOG_LOCATION%\%APPFWK_COMPONENT%_summary.txt
       
   102 	if exist %SUMMARY_LOG% del %SUMMARY_LOG% >NUL
       
   103 goto :EOF
       
   104 
       
   105 :checkForUsbDrive
       
   106 	dir %1:\ 2>&1 | find "%1:" >NUL 2>&1
       
   107 	if ERRORLEVEL 1 goto :EOF
       
   108 	if not exist %1:\usbload.zip goto :EOF
       
   109 	echo INFO: %1:\usbload.zip found!
       
   110 	set HARDWARE_USB=true
       
   111 	set HARDWARE_USB_DRIVE=%1
       
   112 goto :EOF
       
   113 
       
   114 :wait
       
   115 	echo INFO: Waiting %1 seconds
       
   116 	ping 1.1.1.1 -w 1000 -n %1 >NUL
       
   117 goto :EOF
       
   118 
       
   119 :searchForUSB
       
   120 	for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do call :checkForUsbDrive %%i
       
   121 goto :EOF
       
   122 
       
   123 :checkAutomation
       
   124 	set AUTOMATED_FLAG=false
       
   125 	set HARDWARE_USB=false
       
   126 	if not exist "\trgtest.exe"                          echo INFO: \trgtest.exe not found & goto :EOF
       
   127 	if not exist "\empty_image_file"                     echo INFO: \empty_image_file not found & goto :EOF
       
   128 	if not exist "\sync.exe"                             echo INFO: \sync.exe not found & goto :EOF
       
   129 	if not exist "\hardwareswitch.exe"                   echo INFO: \hardwareswitch.exe not found & goto :EOF
       
   130 	if not exist "\devcon.exe"                           echo INFO: \devcon.exe not found & goto :EOF
       
   131 	if not exist "\EJECTDELAY.15"                        echo INFO: \EJECTDELAY.15 not found & goto :EOF
       
   132 	if not exist "\empty_image_file"                     echo INFO: \empty_image_file not found & goto :EOF
       
   133 	if not exist "\logs\autorom\dummytest.txt"           echo INFO: \logs\autorom\dummytest.txt not found & goto :EOF
       
   134 	
       
   135 	call \devcon.exe remove "USB\Vid_0e22&Pid_1112&Rev_0305" > NUL
       
   136 
       
   137 	echo INFO: Hardware OFF
       
   138 	call \hardwareswitch.exe off > NUL
       
   139 	
       
   140 	call :wait 2
       
   141 
       
   142 	echo INFO: Hardware ON
       
   143 	call \hardwareswitch.exe on > NUL
       
   144 
       
   145 	call :wait 15
       
   146 	call :searchForUSB
       
   147 
       
   148 	if /i "%HARDWARE_USB%"=="true" goto :skipUsbSearch
       
   149 	call :wait 10 
       
   150 	call :searchForUSB
       
   151 
       
   152 	if /i "%HARDWARE_USB%"=="true" goto :skipUsbSearch
       
   153 	call :usbNotFound 
       
   154 	goto :EOF
       
   155 
       
   156 	:skipUsbSearch
       
   157 	if not exist \logs\armv5 md \logs\armv5 
       
   158 	set AUTOMATED_FLAG=true
       
   159 goto :EOF
       
   160 
       
   161 :usbNotFound
       
   162 	echo INFO: Target USB Drive not found
       
   163 	call \hardwareswitch.exe off > NUL
       
   164 goto :EOF
       
   165 
       
   166 :upLoadROm
       
   167 	echo INFO: Uploading ROM to %HARDWARE_USB_DRIVE%:
       
   168 	if exist "%HARDWARE_USB_DRIVE%:\sys$rom.zip" del %HARDWARE_USB_DRIVE%:\sys$rom.zip
       
   169 	copy %1 %HARDWARE_USB_DRIVE%:\ > NUL
       
   170 
       
   171 	del %HARDWARE_USB_DRIVE%:\EJECTDELAY.*
       
   172 	copy \EJECTDELAY.15 %HARDWARE_USB_DRIVE%:\ > NUL
       
   173 
       
   174 	echo INFO: Checking %HARDWARE_USB_DRIVE%:
       
   175 	chkdsk %HARDWARE_USB_DRIVE%: > NUL
       
   176 
       
   177 	echo INFO: Ejecting %HARDWARE_USB_DRIVE%:
       
   178 	\sync.exe -r -e %HARDWARE_USB_DRIVE%: > NUL
       
   179 	call \devcon.exe remove "USB\Vid_0e22&Pid_1112&Rev_0305" >NUL
       
   180 
       
   181 	echo INFO: Listening to COM%TEST_ROM_PORT% for test results (%TEST_CASE_TIMEOUT% seconds)
       
   182 	\trgtest.exe %TEST_ROM_PORT% \empty_image_file %TEST_CASE_LOG% %TEST_CASE_TIMEOUT%
       
   183 	echo INFO: test case log - %TEST_CASE_LOG%
       
   184 
       
   185 	call \devcon.exe remove "USB\Vid_0e22&Pid_1112&Rev_0305" > NUL
       
   186 
       
   187 	echo INFO: Hardware OFF
       
   188 	call \hardwareswitch.exe off > NUL
       
   189 	
       
   190 	call :wait 2
       
   191 goto :EOF
       
   192 
       
   193 :manualBuild
       
   194 	set AUTOMATED_FLAG=false
       
   195 	call %BUILDROM_COMMAND% %TEST_CASE% %TEST_CONFIG% ROM %AUTOMATED_FLAG%
       
   196 goto :EOF
       
   197 
       
   198 :test
       
   199 	set TEST_CASE=%1
       
   200 	set TEST_CONFIG=%2
       
   201 
       
   202 	if /i "%TEST_MANUAL_FLAG%"=="true" call :manualBuild & goto :EOF
       
   203 
       
   204 	set TEST_CASE_LOG=%TEST_LOG_LOCATION%\%TEST_CASE%.log
       
   205 	set DABS_TEST_CASE_LOG=%DABS_TEST_LOG_LOCATION%\%TEST_CASE%.log
       
   206 
       
   207 	if exist %TEST_CASE_LOG% del %TEST_CASE_LOG%
       
   208 	if exist %TEST_CASE_LOG%.original del %TEST_CASE_LOG%.original
       
   209 	if exist %DABS_TEST_CASE_LOG% del %DABS_TEST_CASE_LOG%
       
   210 	if exist %DABS_TEST_CASE_LOG%.original del %DABS_TEST_CASE_LOG%.original
       
   211 
       
   212 	call :checkAutomation
       
   213 
       
   214 	if /i "%AUTOMATED_FLAG%"=="false" echo ERROR: Automation check failed for rom >> %TEST_CASE_LOG% & goto :EOF
       
   215 
       
   216 	call %BUILDROM_COMMAND% %TEST_CASE% %TEST_CONFIG% ROM %AUTOMATED_FLAG% %HARDWARE_REFERENCE_PLATFORM%
       
   217 
       
   218 	if not exist \rom\%TEST_CASE%\sys$rom.zip echo ERROR: \rom\%TEST_CASE%\sys$rom.zip does not exist >> %TEST_CASE_LOG% & goto :logResult
       
   219 
       
   220 	call :upLoadROm \rom\%TEST_CASE%\sys$rom.zip
       
   221 
       
   222 	if not exist "\rom\%TEST_CASE%\TEST_ROM_REQUIRED" goto :logResult
       
   223 
       
   224 	call %CHECKEPOC_COMMAND% %TEST_CASE% %AUTOMATED_FLAG% %HARDWARE_REFERENCE_PLATFORM%
       
   225 
       
   226 	if not exist \rom\%TEST_CASE%\testrom\sys$rom.zip echo ERROR: \rom\%TEST_CASE%\testrom\sys$rom.zip does not exist >> %TEST_CASE_LOG% & goto :logResult
       
   227 
       
   228 	call :checkAutomation
       
   229 
       
   230 	if /i "%AUTOMATED_FLAG%"=="false" echo ERROR: Automation check failed for testrom >> %TEST_CASE_LOG% & goto :logResult
       
   231 
       
   232 	if exist %TEST_CASE_LOG% copy %TEST_CASE_LOG% %TEST_CASE_LOG%.original >NUL
       
   233 	if exist %TEST_CASE_LOG% del %TEST_CASE_LOG%
       
   234 
       
   235 	call :upLoadROm \rom\%TEST_CASE%\testrom\sys$rom.zip
       
   236 
       
   237 	:logResult
       
   238 	if not exist %TEST_CASE_LOG% echo ERROR in test execution > %TEST_CASE_LOG% 
       
   239 
       
   240 	:: add the test case log to the overall test log, which will then be split by the DABS scripts.
       
   241 	type %TEST_CASE_LOG% >> %TEST_LOG%
       
   242 
       
   243 	:: copy the test log files across for debugging test runs
       
   244 	:: NOTE: these won't be reported on the DABS html pages, but can be checked if further info is required
       
   245 	:: after a failed test case
       
   246 	copy %TEST_CASE_LOG% %DABS_TEST_CASE_LOG% > NUL
       
   247 	if exist %TEST_CASE_LOG%.original copy %TEST_CASE_LOG%.original %DABS_TEST_CASE_LOG%.original > NUL
       
   248 
       
   249 	:: DABS looks for '_epocwind.txt' extension to then include these logs as epocwind
       
   250 	:: logs, which is useful for debugging what went wrong in case of failure
       
   251 	copy %TEST_CASE_LOG% %DABS_TEST_LOG_LOCATION%\TESTEXECUTE%APPFWK_COMPONENT%_%TEST_CASE%_epocwind.txt >NUL
       
   252 	if exist %TEST_CASE_LOG%.original copy %TEST_CASE_LOG%.original %DABS_TEST_LOG_LOCATION%\TESTEXECUTE%APPFWK_COMPONENT%_%TEST_CASE%_epocwind.txt >NUL
       
   253 
       
   254 	:: insert result into DABS testlog
       
   255 	call :insertResult
       
   256 
       
   257 	call :updateTestSummary
       
   258 goto :EOF
       
   259 
       
   260 :insertResult
       
   261 	:: DABS uses this format in the testlog when building the result summary html page
       
   262 	set RUNNING_TEXT="9999-99-99=99:99:99 Running <TESTEXECUTE%APPFWK_COMPONENT%_%TEST_CASE%.script.htm> for udeb"
       
   263 	set LOCATION_TEXT="9999-99-99=99:99:99   Log location: <\logs\armv5\TESTEXECUTE%APPFWK_COMPONENT%_%TEST_CASE%.script.htm>"
       
   264 
       
   265 	set SEARCH_TEXT="Log location: <\\logs\\armv5\\TESTEXECUTEapparctest_t_StartDoc.script.htm>"
       
   266 
       
   267 	if not exist %DABS_TEST_LOG_LOCATION%\testlog.txt echo ERROR: %DABS_TEST_LOG_LOCATION%\testlog.txt does not exist & goto :EOF
       
   268 	perl %INSERT_COMMAND% %DABS_TEST_LOG_LOCATION%\testlog.txt %SEARCH_TEXT% %RUNNING_TEXT% %LOCATION_TEXT% 
       
   269 goto :EOF
       
   270 
       
   271 :checkLog
       
   272 	:: checkLog SEARCH_FILE SEARCH_STRING EXPECTED_NUMBER_OF_OCCURENCES
       
   273 	set SEARCH_FILE=%1
       
   274 	set SEARCH_STRING=%2
       
   275 	set TEMP_FILE=sysstart_temp.txt
       
   276 	set EXPECTED_COUNT=%3
       
   277 	set LOG_COUNT=0
       
   278 	type %SEARCH_FILE% | find /c %SEARCH_STRING%>%TEMP_FILE%
       
   279 	for /f "delims=\" %%i in ('type %TEMP_FILE%') do set LOG_COUNT=%%i
       
   280 	del %TEMP_FILE%
       
   281 	if "%EXPECTED_COUNT%" ==  "%LOG_COUNT%" goto :EOF
       
   282 	if "%EXPECTED_COUNT%" NEQ "%LOG_COUNT%" set TEST_RESULT_FLAG=FAIL
       
   283 goto :EOF
       
   284 
       
   285 :updateTestSummary
       
   286 	set TEST_RESULT_FLAG=PASS
       
   287 	call :checkLog %DABS_TEST_LOG_LOCATION%\%TEST_CASE%.log "%TEST_CASE% ***Result = PASS" 1
       
   288 	echo %TEST_CASE% - %TEST_RESULT_FLAG% >> %SUMMARY_LOG%
       
   289 goto :EOF
       
   290 
       
   291 :skipFunctions
       
   292 
       
   293 
       
   294 endlocal