graphicsdeviceinterface/directgdi/test/scripts/directgditest_setup_hw.bat
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsdeviceinterface/directgdi/test/scripts/directgditest_setup_hw.bat	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,225 @@
+rem Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:
+rem
+
+@echo off
+
+rem ================================================================================================
+rem
+rem NOTES:
+rem  - This batch file is used by DABS to automate DirectGDI tests.
+rem  - The reason behind it is the amount of data used by the tests, which is too 
+rem		big for sys$rom.bin to handle
+rem  - This file is both useful for overnight automated testing in DABS as well as a reference
+rem		for the correct setup of the tests during a manual execution. 
+rem
+rem USAGE:
+rem   install -> Installs to the MMC card all data needed by the test. The process of searching 
+rem		for the usb drive is automated.
+rem  :copy -> Retrieves from the MMC card all the output, copying it back to the PC performing 
+rem		the automated build.
+rem  :parse -> Once the data is in the build PC, a set of Python scripts are run to generate 
+rem		a report page to present the results in an html format.
+rem
+rem CAVEAT:
+rem  - From dabslaunch_v6, DABS has been updated as part of the BATS project. Due to 
+rem		the nature of BATS, the mechanism for sending and retrieving data to and from the MMC card
+rem		has been updated, as there is no longer a 1 to 1 connection between a build machine and a
+rem		hardware board (making the usb search mechanism useless). 
+rem  - This results in a scenario where in a BATS system, only DABS knows in which board a 
+rem		particular rom is going to run. For that reason, both :install and :copy are not used within
+rem		the BATS scripts, but nevertheless, they have been left here for reference as well as for
+rem		a helping tool when doing the setup manually.
+rem
+rem ================================================================================================
+
+setlocal
+
+:: Initialise local variables
+set TARGET_PLATFORM=%1
+set COMMAND_CHOICE=%2
+
+
+goto :%COMMAND_CHOICE%
+
+
+rem ===============================================================  
+rem ==		  												=======
+rem ==		  SUPPORT FUNCTIONS								=======
+rem ==		  												=======
+rem ===============================================================  
+
+:checkForUsbDrive
+	dir %1:\ 2>&1 | find "%1:" >NUL 2>&1
+	if ERRORLEVEL 1 goto :EOF
+	if not exist %1:\usbload.zip goto :EOF
+	echo INFO: %1:\usbload.zip found!
+	set HARDWARE_USB=true
+	set HARDWARE_USB_DRIVE=%1
+goto :EOF
+
+:wait
+	echo INFO: Waiting %1 seconds
+	for /L %%j in (2,1,%1) do call :wait1
+	:wait1
+	for %%i in (%time%) do set startsec=%%~ni%
+	:loop_wait
+	set endsec=
+	for %%k in (%time%) do set endsec=%%~nk%
+	if %endsec%==%startsec% goto loop_wait
+goto :EOF
+
+:searchForUSB
+	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
+goto :EOF
+
+:checkAutomation
+	set HARDWARE_USB=false
+	if not exist "\trgtest.exe"                          echo INFO: \trgtest.exe not found & goto :EOF
+	if not exist "\hardwarecontrol.exe"                   echo INFO: \hardwarecontrol.exe not found & goto :EOF
+	if not exist "\devcon.exe"                           echo INFO: \devcon.exe not found & goto :EOF
+	
+	call \devcon.exe remove "USB\Vid_0e22&Pid_1112&Rev_0305"
+
+	echo INFO: Hardware OFF
+	call \hardwarecontrol.exe --off
+	
+	call :wait 2
+
+	echo INFO: Hardware ON
+	call \hardwarecontrol.exe --on
+
+	call :wait 15
+	call :searchForUSB
+
+	if /i "%HARDWARE_USB%"=="true" goto :skipUsbSearch
+
+	echo INFO: USB Drive not found, trying again...
+	echo INFO: Hardware OFF
+	call \hardwarecontrol.exe --off
+	
+	call :wait 2
+
+	echo INFO: Hardware ON
+	call \hardwarecontrol.exe --on
+
+	call :wait 15
+	call :searchForUSB
+
+	if /i "%HARDWARE_USB%"=="true" goto :skipUsbSearch
+	call :usbNotFound 
+	goto :EOF
+
+:skipUsbSearch
+	if not exist \logs\%TARGET_PLATFORM% md \logs\%TARGET_PLATFORM% 
+goto :EOF
+
+:usbNotFound
+	echo ERROR: Target USB Drive not found
+	call \hardwarecontrol.exe --off
+goto :EOF
+
+:hardwareSwitchOff
+	call :wait 15
+	chkdsk %HARDWARE_USB_DRIVE%:
+	call :wait 2
+	call \devcon.exe remove "USB\Vid_0e22&Pid_1112&Rev_0305"
+	call :wait 2
+	echo INFO: Hardware OFF
+	call \hardwarecontrol.exe --off
+goto :EOF
+
+
+rem ===============================================================  
+rem ==		  												=======
+rem ==		  INSTALL										=======
+rem ==		  												=======
+rem ===============================================================  
+
+:install
+
+	call :checkAutomation
+	if /i "%HARDWARE_USB%"=="false" echo ERROR: DirectGDI test initialisation failed. USB not found! & goto :EOF
+	
+	 rd /s /q %HARDWARE_USB_DRIVE%:\img
+	 md %HARDWARE_USB_DRIVE%:\img\test
+
+	call :hardwareSwitchOff
+
+	goto :EOF
+
+
+
+rem ===============================================================  
+rem ==		  												=======
+rem ==		  EXTRACT RESULTS FROM MMC						=======
+rem ==		  												=======
+rem ===============================================================  
+
+:copy
+
+	call :checkAutomation
+	if /i "%HARDWARE_USB%"=="false" echo ERROR: DirectGDI copy results from MMC card failed. USB not found! & goto :EOF
+	
+	rem copy test mbms from MMC card
+	set CDRIVE=%EPOCROOT%epoc32\data\c
+	xcopy /EIYR %HARDWARE_USB_DRIVE%:\img\test 	%CDRIVE%\img\test
+
+	call :hardwareSwitchOff
+	goto :EOF
+
+
+
+rem ===============================================================  
+rem ==		  												=======
+rem ==		  PARSE RESULTS ONCE IN THE PC					=======
+rem ==		  												=======
+rem ===============================================================  
+
+:parse
+
+	rem copy reference mbms from source
+	chdir %EPOCROOT%
+	set CDRIVE=%EPOCROOT%epoc32\data\c
+	unzip -qo %CDRIVE%\img\reference.zip -d %CDRIVE%\img\ref
+	rem the next one overwrites some of the mbm copied in the previous copy.
+	unzip -qo %CDRIVE%\img\replacements_from_directgdi\replacement.zip -d %CDRIVE%\img\ref
+	
+	rem create logs directory
+	if not exist %CDRIVE%\logs md %CDRIVE%\logs
+	
+	rem convert .mbm files to .bmp files and run the bitmap comparison tests, and create html reports
+	chdir %CDRIVE%\img
+	perl runtest.pl %TARGET_PLATFORM%
+	
+	set LOGDIR=logs
+	PUSHD \
+	FOR /D %%G IN (logs*) DO (IF EXIST %%G\%TARGET_PLATFORM%\directgdi_flag SET LOGDIR=%%G)
+	POPD
+	
+	set RESULTS=\%LOGDIR%\%TARGET_PLATFORM%\directgdi_results
+	set ONBSUMMARY=\%LOGDIR%\%TARGET_PLATFORM%
+	rem copy difference bitmaps, test image bitmaps and reference image bitmaps to results directories
+	xcopy /IYR %CDRIVE%\img\ref\*.bmp %RESULTS%\img\ref
+	xcopy /IYR %CDRIVE%\img\test\*.bmp %RESULTS%\img\test
+	xcopy /IYR %CDRIVE%\img\RGBDiff*.bmp %RESULTS%\img
+	rem copy results web pages
+	xcopy /SIYR %CDRIVE%\logs\*.html %RESULTS%\logs
+	xcopy /SIYR %CDRIVE%\*.htm %ONBSUMMARY%
+	goto :EOF
+
+
+goto :EOF        
+
+endlocal