summaryrefslogtreecommitdiffstats
path: root/Tools/msi/testrelease.bat
blob: bf1ceffc0eee72173b63fd64ca98fb0e8753aa6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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%