115 lines
3.9 KiB
Batchfile
115 lines
3.9 KiB
Batchfile
@setlocal
|
|
@echo off
|
|
|
|
set D=%~dp0
|
|
set PCBUILD=%D%..\..\PCBuild\
|
|
|
|
set TARGETDIR=%TEMP%
|
|
set TESTX86=
|
|
set TESTX64=
|
|
set TESTALLUSER=
|
|
set TESTPERUSER=
|
|
|
|
:CheckOpts
|
|
if "%1" EQU "-h" goto Help
|
|
if "%1" EQU "-x86" (set TESTX86=1) && shift && goto CheckOpts
|
|
if "%1" EQU "-x64" (set TESTX64=1) && shift && goto CheckOpts
|
|
if "%1" EQU "-t" (set TARGETDIR=%~2) && shift && shift && goto CheckOpts
|
|
if "%1" EQU "--target" (set TARGETDIR=%~2) && shift && shift && goto CheckOpts
|
|
if "%1" EQU "-a" (set TESTALLUSER=1) && shift && goto CheckOpts
|
|
if "%1" EQU "--alluser" (set TESTALLUSER=1) && shift && goto CheckOpts
|
|
if "%1" EQU "-p" (set TESTPERUSER=1) && shift && goto CheckOpts
|
|
if "%1" EQU "--peruser" (set TESTPERUSER=1) && shift && goto CheckOpts
|
|
|
|
if not defined TESTX86 if not defined TESTX64 (set TESTX86=1) && (set TESTX64=1)
|
|
if not defined TESTALLUSER if not defined TESTPERUSER (set TESTALLUSER=1) && (set TESTPERUSER=1)
|
|
|
|
|
|
if defined TESTX86 (
|
|
for %%f in ("%PCBUILD%win32\en-us\*.exe") do (
|
|
if defined TESTALLUSER call :test "%%~ff" "%TARGETDIR%\%%~nf-alluser" "InstallAllUsers=1 CompileAll=1"
|
|
if errorlevel 1 exit /B
|
|
if defined TESTPERUSER call :test "%%~ff" "%TARGETDIR%\%%~nf-peruser" "InstallAllUsers=0 CompileAll=0"
|
|
if errorlevel 1 exit /B
|
|
)
|
|
)
|
|
|
|
if defined TESTX64 (
|
|
for %%f in ("%PCBUILD%amd64\en-us\*.exe") do (
|
|
if defined TESTALLUSER call :test "%%~ff" "%TARGETDIR%\%%~nf-alluser" "InstallAllUsers=1 CompileAll=1"
|
|
if errorlevel 1 exit /B
|
|
if defined TESTPERUSER call :test "%%~ff" "%TARGETDIR%\%%~nf-peruser" "InstallAllUsers=0 CompileAll=0"
|
|
if errorlevel 1 exit /B
|
|
)
|
|
)
|
|
|
|
exit /B 0
|
|
|
|
:test
|
|
@setlocal
|
|
@echo on
|
|
|
|
@if not exist "%~1" exit /B 1
|
|
|
|
@set EXITCODE=0
|
|
@echo Installing %1 into %2
|
|
"%~1" /passive /log "%~2\install\log.txt" TargetDir="%~2\Python" Include_debug=1 Include_symbols=1 %~3
|
|
|
|
@if not errorlevel 1 (
|
|
@echo Printing version
|
|
"%~2\Python\python.exe" -c "import sys; print(sys.version)" > "%~2\version.txt" 2>&1
|
|
)
|
|
|
|
@if not errorlevel 1 (
|
|
@echo Capturing Start Menu
|
|
@dir /s/b "%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs" | findstr /ic:"python" > "%~2\startmenu.txt" 2>&1
|
|
@dir /s/b "%APPDATA%\Microsoft\Windows\Start Menu\Programs" | findstr /ic:"python" >> "%~2\startmenu.txt" 2>&1
|
|
|
|
@echo Capturing registry
|
|
@for /F "usebackq" %%f in (`reg query HKCR /s /f python /k`) do @(
|
|
echo %%f >> "%~2\hkcr.txt"
|
|
reg query "%%f" /s >> "%~2\hkcr.txt" 2>&1
|
|
)
|
|
@reg query HKCU\Software\Python /s > "%~2\hkcu.txt" 2>&1
|
|
@reg query HKLM\Software\Python /reg:32 /s > "%~2\hklm.txt" 2>&1
|
|
@reg query HKLM\Software\Python /reg:64 /s >> "%~2\hklm.txt" 2>&1
|
|
cmd /k exit 0
|
|
)
|
|
|
|
@if not errorlevel 1 (
|
|
@echo Installing package
|
|
"%~2\Python\python.exe" -m pip install "azure<0.10" > "%~2\pip.txt" 2>&1
|
|
@if not errorlevel 1 (
|
|
"%~2\Python\python.exe" -m pip uninstall -y azure python-dateutil six >> "%~2\pip.txt" 2>&1
|
|
)
|
|
)
|
|
@if not errorlevel 1 (
|
|
@echo Testing Tcl/tk
|
|
@set TCL_LIBRARY=%~2\Python\tcl\tcl8.6
|
|
"%~2\Python\python.exe" -m test -uall -v test_ttk_guionly test_tk test_idle > "%~2\tcltk.txt" 2>&1
|
|
@set TCL_LIBRARY=
|
|
)
|
|
|
|
@set EXITCODE=%ERRORLEVEL%
|
|
|
|
@echo Result was %EXITCODE%
|
|
@echo Removing %1
|
|
"%~1" /passive /uninstall /log "%~2\uninstall\log.txt"
|
|
|
|
@echo off
|
|
exit /B %EXITCODE%
|
|
|
|
:Help
|
|
echo testrelease.bat [--target TARGET] [-x86] [-x64] [--alluser] [--peruser] [-h]
|
|
echo.
|
|
echo --target (-t) Specify the target directory for installs and logs
|
|
echo -x86 Run tests for x86 installers
|
|
echo -x64 Run tests for x64 installers
|
|
echo --alluser (-a) Run tests for all-user installs (requires Administrator)
|
|
echo --peruser (-p) Run tests for per-user installs
|
|
echo -h Display this help information
|
|
echo.
|
|
echo If no test architecture is specified, all architectures will be tested.
|
|
echo If no install type is selected, all install types will be tested.
|
|
echo.
|