diff options
author | Steve Dower <steve.dower@microsoft.com> | 2015-02-07 23:42:53 (GMT) |
---|---|---|
committer | Steve Dower <steve.dower@microsoft.com> | 2015-02-07 23:42:53 (GMT) |
commit | 5056455b7dc6d709c14658492fd670c262f05908 (patch) | |
tree | 5dec51abe179c8715d7a4f71a4b7d1f11faced0f /Tools | |
parent | 26dd5edae820f346f7a1473952116e3a103d01fa (diff) | |
download | cpython-5056455b7dc6d709c14658492fd670c262f05908.zip cpython-5056455b7dc6d709c14658492fd670c262f05908.tar.gz cpython-5056455b7dc6d709c14658492fd670c262f05908.tar.bz2 |
Adds automated test script for the Windows installer and fixes download URL
Diffstat (limited to 'Tools')
-rw-r--r-- | Tools/msi/buildrelease.bat | 6 | ||||
-rw-r--r-- | Tools/msi/bundle/bundle.targets | 2 | ||||
-rw-r--r-- | Tools/msi/get_wix.py | 2 | ||||
-rw-r--r-- | Tools/msi/testrelease.bat | 80 |
4 files changed, 88 insertions, 2 deletions
diff --git a/Tools/msi/buildrelease.bat b/Tools/msi/buildrelease.bat index d441250..7183a84 100644 --- a/Tools/msi/buildrelease.bat +++ b/Tools/msi/buildrelease.bat @@ -22,6 +22,7 @@ set PCBUILD=%D%..\..\PCBuild\ set BUILDX86= set BUILDX64= set TARGET=Rebuild +set TESTTARGETDIR= :CheckOpts @@ -30,6 +31,7 @@ if "%1" EQU "-o" (set OUTDIR=%~2) && shift && shift && goto CheckOpts if "%1" EQU "-D" (set SKIPDOC=1) && shift && goto CheckOpts if "%1" EQU "-B" (set SKIPBUILD=1) && shift && goto CheckOpts if "%1" EQU "--download" (set DOWNLOAD_URL=%~2) && shift && shift && goto CheckOpts +if "%1" EQU "--test" (set TESTTARGETDIR=%~2) && shift && shift && goto CheckOpts if "%1" EQU "-b" (set TARGET=Build) && shift && goto CheckOpts if '%1' EQU '-x86' (set BUILDX86=1) && shift && goto CheckOpts if '%1' EQU '-x64' (set BUILDX64=1) && shift && goto CheckOpts @@ -66,6 +68,10 @@ if defined BUILDX64 ( if errorlevel 1 exit /B ) +if defined TESTTARGETDIR ( + call "%D%testrelease.bat" -t "%TESTTARGETDIR%" +) + exit /B 0 :build diff --git a/Tools/msi/bundle/bundle.targets b/Tools/msi/bundle/bundle.targets index 7726eea..8e4eb9e 100644 --- a/Tools/msi/bundle/bundle.targets +++ b/Tools/msi/bundle/bundle.targets @@ -14,7 +14,7 @@ <OutputPath>$(OutputPath)en-us\</OutputPath> <OutDir>$(OutputPath)</OutDir> - <DownloadUrl Condition="'$(DownloadUrl)' == '' and '$(DownloadUrlBase)' != ''">$(DownloadUrlBase.TrimEnd(`/`))/$(PythonVersion)/$(ArchName)/{2}</DownloadUrl> + <DownloadUrl Condition="'$(DownloadUrl)' == '' and '$(DownloadUrlBase)' != ''">$(DownloadUrlBase.TrimEnd(`/`))/$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)/$(ArchName)$(ReleaseLevelName)/{2}</DownloadUrl> <DefineConstants Condition="'$(DownloadUrl)' != ''">$(DefineConstants);DownloadUrl=$(DownloadUrl)</DefineConstants> <DefineConstants Condition="'$(DownloadUrl)' == ''">$(DefineConstants);DownloadUrl={2}</DefineConstants> </PropertyGroup> diff --git a/Tools/msi/get_wix.py b/Tools/msi/get_wix.py index 85b02f2..da36a2e 100644 --- a/Tools/msi/get_wix.py +++ b/Tools/msi/get_wix.py @@ -22,7 +22,7 @@ if not EXTERNALS_DIR: print("Cannot find project root") sys.exit(1) -WIX_BINARIES_ZIP = 'http://wixtoolset.org/downloads/v3.10.1124.0/wix310-binaries.zip' +WIX_BINARIES_ZIP = 'http://wixtoolset.org/downloads/v3.10.0.1403/wix310-binaries.zip' TARGET_BIN_ZIP = EXTERNALS_DIR / "wix.zip" TARGET_BIN_DIR = EXTERNALS_DIR / "wix" diff --git a/Tools/msi/testrelease.bat b/Tools/msi/testrelease.bat new file mode 100644 index 0000000..bf1ceff --- /dev/null +++ b/Tools/msi/testrelease.bat @@ -0,0 +1,80 @@ +@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 '-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 '-a' (set TESTALLUSER=1) && shift && goto CheckOpts +if '%1' EQU '-p' (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 + if defined TESTPERUSER call :test "%%~ff" "%TARGETDIR%\%%~nf-peruser" InstallAllUsers=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 + if defined TESTPERUSER call :test "%%~ff" "%TARGETDIR%\%%~nf-peruser" InstallAllUsers=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" %~3 TargetDir="%~2\Python" Include_debug=1 Include_symbols=1 CompileAll=1 + +@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 Installing package + "%~2\Python\python.exe" -m pip install azure > "%~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% + +@for /d %%f in ("%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\Python*") do @dir "%%~ff\*.lnk" /s/b > "%~2\startmenu.txt" 2>&1 +@for /d %%f in ("%APPDATA%\Microsoft\Windows\Start Menu\Programs\Python*") do @dir "%%~ff\*.lnk" /s/b >> "%~2\startmenu.txt" 2>&1 + +@echo Result was %EXITCODE% +@echo Removing %1 +"%~1" /passive /uninstall /log "%~2\uninstall\log.txt" + +@echo off +exit /B %EXITCODE% |