rt.bat 1.97 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
@echo off
rem Run Tests.  Run the regression test suite.
rem Usage:  rt [-d] [-O] [-q] [-x64] regrtest_args
rem -d   Run Debug build (python_d.exe).  Else release build.
rem -O   Run python.exe or python_d.exe (see -d) with -O.
rem -q   "quick" -- normally the tests are run twice, the first time
rem      after deleting all the .py[co] files reachable from Lib/.
rem      -q runs the tests just once, and without deleting .py[co] files.
rem -x64 Run the 64-bit build of python (or python_d if -d was specified)
rem      from the 'amd64' dir instead of the 32-bit build in this dir.
rem All leading instances of these switches are shifted off, and
12 13
rem whatever remains (up to 9 arguments) is passed to regrtest.py.
rem For example,
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
rem     rt -O -d -x test_thread
rem runs
rem     python_d -O ../lib/test/regrtest.py -x test_thread
rem twice, and
rem     rt -q -g test_binascii
rem runs
rem     python_d ../lib/test/regrtest.py -g test_binascii
rem to generate the expected-output file for binascii quickly.
rem
rem Confusing:  if you want to pass a comma-separated list, like
rem     -u network,largefile
rem then you have to quote it on the rt line, like
rem     rt -u "network,largefile"

setlocal

30 31
set pcbuild=%~dp0
set prefix=%pcbuild%win32\
32 33 34
set suffix=
set qmode=
set dashO=
35
set regrtestargs=
36 37 38 39 40

:CheckOpts
if "%1"=="-O" (set dashO=-O)     & shift & goto CheckOpts
if "%1"=="-q" (set qmode=yes)    & shift & goto CheckOpts
if "%1"=="-d" (set suffix=_d)    & shift & goto CheckOpts
41
if "%1"=="-x64" (set prefix=%pcbuild%amd64\) & shift & goto CheckOpts
42
if NOT "%1"=="" (set regrtestargs=%regrtestargs% %1) & shift & goto CheckOpts
43

44
set exe=%prefix%python%suffix%.exe
45
set cmd="%exe%" %dashO% -Wd -E -bb "%pcbuild%..\lib\test\regrtest.py" %regrtestargs%
46 47 48
if defined qmode goto Qmode

echo Deleting .pyc/.pyo files ...
49
"%exe%" "%pcbuild%rmpyc.py"
50 51 52 53 54 55 56 57 58 59 60

echo on
%cmd%
@echo off

echo About to run again without deleting .pyc/.pyo first:
pause

:Qmode
echo on
%cmd%