blob: 35826727f3fa279da3b952e0d7c22120bc52e425 [file] [log] [blame]
Zachary Ware4c9c8482015-04-13 11:59:54 -05001@echo off
2rem Run Tests. Run the regression test suite.
3rem Usage: rt [-d] [-O] [-q] [-x64] regrtest_args
4rem -d Run Debug build (python_d.exe). Else release build.
5rem -O Run python.exe or python_d.exe (see -d) with -O.
6rem -q "quick" -- normally the tests are run twice, the first time
7rem after deleting all the .py[co] files reachable from Lib/.
8rem -q runs the tests just once, and without deleting .py[co] files.
9rem -x64 Run the 64-bit build of python (or python_d if -d was specified)
10rem from the 'amd64' dir instead of the 32-bit build in this dir.
11rem All leading instances of these switches are shifted off, and
Zachary Ware774ac372015-04-13 12:11:40 -050012rem whatever remains (up to 9 arguments) is passed to regrtest.py.
13rem For example,
Zachary Ware4c9c8482015-04-13 11:59:54 -050014rem rt -O -d -x test_thread
15rem runs
16rem python_d -O ../lib/test/regrtest.py -x test_thread
17rem twice, and
18rem rt -q -g test_binascii
19rem runs
20rem python_d ../lib/test/regrtest.py -g test_binascii
21rem to generate the expected-output file for binascii quickly.
22rem
23rem Confusing: if you want to pass a comma-separated list, like
24rem -u network,largefile
25rem then you have to quote it on the rt line, like
26rem rt -u "network,largefile"
27
28setlocal
29
Zachary Ware774ac372015-04-13 12:11:40 -050030set pcbuild=%~dp0
31set prefix=%pcbuild%win32\
Zachary Ware4c9c8482015-04-13 11:59:54 -050032set suffix=
33set qmode=
34set dashO=
Zachary Waree74fe182015-09-03 23:43:37 -050035set regrtestargs=
Zachary Ware4c9c8482015-04-13 11:59:54 -050036
37:CheckOpts
38if "%1"=="-O" (set dashO=-O) & shift & goto CheckOpts
39if "%1"=="-q" (set qmode=yes) & shift & goto CheckOpts
40if "%1"=="-d" (set suffix=_d) & shift & goto CheckOpts
Zachary Ware774ac372015-04-13 12:11:40 -050041if "%1"=="-x64" (set prefix=%pcbuild%amd64\) & shift & goto CheckOpts
Zachary Waree74fe182015-09-03 23:43:37 -050042if NOT "%1"=="" (set regrtestargs=%regrtestargs% %1) & shift & goto CheckOpts
Zachary Ware4c9c8482015-04-13 11:59:54 -050043
Zachary Ware774ac372015-04-13 12:11:40 -050044set exe=%prefix%python%suffix%.exe
Victor Stinner8c08e0d2016-03-24 17:46:24 +010045set cmd="%exe%" %dashO% -Wd -E -bb -m test %regrtestargs%
Zachary Ware4c9c8482015-04-13 11:59:54 -050046if defined qmode goto Qmode
47
48echo Deleting .pyc/.pyo files ...
Zachary Ware774ac372015-04-13 12:11:40 -050049"%exe%" "%pcbuild%rmpyc.py"
Zachary Ware4c9c8482015-04-13 11:59:54 -050050
Steve Dower1da055e2016-10-29 08:50:31 -070051echo Cleaning _pth files ...
52if exist %prefix%*._pth del %prefix%*._pth
53
Zachary Ware4c9c8482015-04-13 11:59:54 -050054echo on
55%cmd%
56@echo off
57
58echo About to run again without deleting .pyc/.pyo first:
59pause
60
61:Qmode
62echo on
63%cmd%