More cmd.exe exploitation.

This commit is contained in:
Tim Peters 2004-08-30 22:13:22 +00:00
parent e2f6899fd6
commit 42cd14d04c

View file

@ -1,40 +1,52 @@
@rem Run Tests. Run the regression test suite. @echo off
@rem Usage: rt [-d] [-O] [-q] regrtest_args rem Run Tests. Run the regression test suite.
@rem -d Run Debug build (python_d.exe). Else release build. rem Usage: rt [-d] [-O] [-q] regrtest_args
@rem -O Run python.exe or python_d.exe (see -d) with -O. rem -d Run Debug build (python_d.exe). Else release build.
@rem -q "quick" -- normally the tests are run twice, the first time rem -O Run python.exe or python_d.exe (see -d) with -O.
@rem after deleting all the .py[co] files reachable from Lib/. rem -q "quick" -- normally the tests are run twice, the first time
@rem -q runs the tests just once, and without deleting .py[co] files. rem after deleting all the .py[co] files reachable from Lib/.
@rem All leading instances of these switches are shifted off, and rem -q runs the tests just once, and without deleting .py[co] files.
@rem whatever remains is passed to regrtest.py. For example, rem All leading instances of these switches are shifted off, and
@rem rt -O -d -x test_thread rem whatever remains is passed to regrtest.py. For example,
@rem runs rem rt -O -d -x test_thread
@rem python_d -O ../lib/test/regrtest.py -x test_thread rem runs
@rem twice, and rem python_d -O ../lib/test/regrtest.py -x test_thread
@rem rt -q -g test_binascii rem twice, and
@rem runs rem rt -q -g test_binascii
@rem python_d ../lib/test/regrtest.py -g test_binascii rem runs
@rem to generate the expected-output file for binascii quickly. rem python_d ../lib/test/regrtest.py -g test_binascii
@setlocal rem to generate the expected-output file for binascii quickly.
@set _exe=python rem
@set _qmode=no rem Confusing: if you want to pass a comma-separated list, like
@set _dashO= rem -u network,largefile
@PATH %PATH%;..\..\tcltk\bin rem then you have to quote it on the rt line, like
@goto CheckOpts rem rt -u "network,largefile"
:Again
@shift setlocal
set exe=python
set qmode=
set dashO=
PATH %PATH%;..\..\tcltk\bin
:CheckOpts :CheckOpts
@if "%1"=="-O" set _dashO=-O if "%1"=="-O" (set dashO=-O) & shift & goto CheckOpts
@if "%1"=="-O" goto Again if "%1"=="-q" (set qmode=yes) & shift & goto CheckOpts
@if "%1"=="-q" set _qmode=yes if "%1"=="-d" (set exe=python_d) & shift & goto CheckOpts
@if "%1"=="-q" goto Again
@if "%1"=="-d" set _exe=python_d set cmd=%exe% %dashO% -E -tt ../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9
@if "%1"=="-d" goto Again if defined qmode goto Qmode
@if "%_qmode%"=="yes" goto Qmode
@echo Deleting .pyc/.pyo files ... echo Deleting .pyc/.pyo files ...
@%_exe% rmpyc.py %exe% rmpyc.py
%_exe% %_dashO% -E -tt ../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9
@echo About to run again without deleting .pyc/.pyo first: echo on
@pause %cmd%
@echo off
echo About to run again without deleting .pyc/.pyo first:
pause
:Qmode :Qmode
%_exe% %_dashO% -E -tt ../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9 echo on
%cmd%