:: Copyright 2010-12 Canonical Ltd. :: :: This program is free software: you can redistribute it and/or modify it :: under the terms of the GNU General Public License version 3, as published :: by the Free Software Foundation. :: :: This program is distributed in the hope that it will be useful, but :: WITHOUT ANY WARRANTY; without even the implied warranties of :: MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR :: PURPOSE. See the GNU General Public License for more details. :: :: You should have received a copy of the GNU General Public License along :: with this program. If not, see . @ECHO off :: We could have Python 2.6 or 2.7 on Windows. In order to check availability, :: we should first check for 2.7, and run the tests, otherwise fall back to 2.6. SET REGQUERY27="REG QUERY HKLM\Software\Python\PythonCore\2.7\InstallPath /ve" SET REGQUERY2732="REG QUERY HKLM\Software\Wow6432Node\Python\PythonCore\2.7\InstallPath /ve" SET REGQUERY26="REG QUERY HKLM\Software\Python\PythonCore\2.6\InstallPath /ve" SET REGQUERY2632="REG QUERY HKLM\Software\Wow6432Node\Python\PythonCore\2.6\InstallPath /ve" SET PYTHONEXEPATH="" :: This is very annoying; FOR /F will work differently depending on the output :: of reg which is not consistent between OS versions (XP, 7). We must choose :: the tokens according to OS version. SET PYTHONPATHTOKENS=3 VER | FIND "XP" > nul IF %ERRORLEVEL% == 0 ( SET PYTHONPATHTOKENS=4) ECHO Checking if python 2.7 is in the system :: Look for python 2.7 FOR /F "tokens=%PYTHONPATHTOKENS%" %%A IN ('%REGQUERY27%') DO @SET PYTHONEXEPATH=%%A IF NOT %PYTHONEXEPATH% == "" ( GOTO :PYTHONPRESENT) ECHO Checking if python 2.6 is in the system :: we do not have python 2.7 in the system, try to find 2.6 FOR /F "tokens=%PYTHONPATHTOKENS%" %%A IN ('%REGQUERY26%') DO @SET PYTHONEXEPATH=%%A IF NOT %PYTHONEXEPATH% == "" ( GOTO :PYTHONPRESENT) :: we do not have python (2.6 or 2.7) this could hapen in the case that the :: user installed the 32version in a 64 machine, let check if the software was installed in the wow key :: Look for python 2.7 in WoW64 ECHO Checking if python 2.7 32 is in the system FOR /F "tokens=%PYTHONPATHTOKENS%" %%A IN ('%REGQUERY2732%') DO @SET PYTHONEXEPATH=%%A IF NOT %PYTHONEXEPATH% == "" ( GOTO :PYTHONPRESENT) ECHO Checking if python 2.6 32 is in the system :: we do not have python 2.7 in the system, try to find 2.6 FOR /F "tokens=%PYTHONPATHTOKENS%" %%A IN ('%REGQUERY2632%') DO @SET PYTHONEXEPATH=%%A IF NOT %PYTHONEXEPATH% == "" ( GOTO :PYTHONPRESENT) ECHO Please ensure you have python installed GOTO :END :PYTHONPRESENT :: throw the first parameter away if is /skip-lint, :: the way we do this is to ensure that /skip-lint :: is the first parameter and copy all the rest in a loop :: the main reason for that is that %* is not affected :: by SHIFT, that is, it allways have all passed parameters SET PARAMS=%* SET SKIPLINT=0 IF "%1" == "/skip-lint" ( SET SKIPLINT=1 GOTO :CLEANPARAMS )ELSE ( GOTO :CONTINUEBATCH) :CLEANPARAMS SHIFT SET PARAMS=%1 :GETREST SHIFT if [%1]==[] ( GOTO CONTINUEBATCH) SET PARAMS=%PARAMS% %1 GOTO GETREST :CONTINUEBATCH ECHO Python found, executing the tests... COPY windows\clientdefs.py ubuntuone\clientdefs.py COPY windows\logging.conf data\logging.conf :: execute the tests with a number of ignored linux only modules "%PYTHONEXEPATH%\python.exe" "%PYTHONEXEPATH%\Scripts\u1trial" --reactor=twisted -c -p tests\platform\linux %PARAMS% tests IF %SKIPLINT% == 1 ( ECHO Skipping style checks GOTO :CLEAN) "%PYTHONEXEPATH%\python.exe" "%PYTHONEXEPATH%\Scripts\u1lint" :: test for style if we can, if pep8 is not present, move to the end IF EXIST "%PYTHONEXEPATH%\Scripts\pep8.exe" ( "%PYTHONEXEPATH%\Scripts\pep8.exe" --repeat ubuntuone )ELSE ( ECHO Style checks were not done) :CLEAN :: Delete the temp folders RMDIR /s /q _trial_temp RMDIR /s /q .coverage :END