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