Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
ea13dc62
Kaydet (Commit)
ea13dc62
authored
Mar 29, 2008
tarafından
Amaury Forgeot d'Arc
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Now that Lib/test/output is gone, tests should not print anything,
except in verbose mode. Support code is much simpler.
üst
bae17a8a
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
63 deletions
+19
-63
regrtest.py
Lib/test/regrtest.py
+19
-63
No files found.
Lib/test/regrtest.py
Dosyayı görüntüle @
ea13dc62
...
@@ -31,8 +31,6 @@ If non-option arguments are present, they are names for tests to run,
...
@@ -31,8 +31,6 @@ If non-option arguments are present, they are names for tests to run,
unless -x is given, in which case they are names for tests not to run.
unless -x is given, in which case they are names for tests not to run.
If no test names are given, all tests are run.
If no test names are given, all tests are run.
-v is incompatible with -g and does not compare test output files.
-T turns on code coverage tracing with the trace module.
-T turns on code coverage tracing with the trace module.
-D specifies the directory where coverage files are put.
-D specifies the directory where coverage files are put.
...
@@ -178,7 +176,7 @@ def usage(code, msg=''):
...
@@ -178,7 +176,7 @@ def usage(code, msg=''):
sys
.
exit
(
code
)
sys
.
exit
(
code
)
def
main
(
tests
=
None
,
testdir
=
None
,
verbose
=
0
,
quiet
=
False
,
generate
=
False
,
def
main
(
tests
=
None
,
testdir
=
None
,
verbose
=
0
,
quiet
=
False
,
exclude
=
False
,
single
=
False
,
randomize
=
False
,
fromfile
=
None
,
exclude
=
False
,
single
=
False
,
randomize
=
False
,
fromfile
=
None
,
findleaks
=
False
,
use_resources
=
None
,
trace
=
False
,
coverdir
=
'coverage'
,
findleaks
=
False
,
use_resources
=
None
,
trace
=
False
,
coverdir
=
'coverage'
,
runleaks
=
False
,
huntrleaks
=
False
,
verbose2
=
False
,
print_slow
=
False
):
runleaks
=
False
,
huntrleaks
=
False
,
verbose2
=
False
,
print_slow
=
False
):
...
@@ -198,7 +196,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
...
@@ -198,7 +196,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
command-line will be used. If that's empty, too, then all *.py
command-line will be used. If that's empty, too, then all *.py
files beginning with test_ will be used.
files beginning with test_ will be used.
The other default arguments (verbose, quiet,
generate,
exclude,
The other default arguments (verbose, quiet, exclude,
single, randomize, findleaks, use_resources, trace, coverdir, and
single, randomize, findleaks, use_resources, trace, coverdir, and
print_slow) allow programmers calling main() directly to set the
print_slow) allow programmers calling main() directly to set the
values that would normally be set by flags on the command line.
values that would normally be set by flags on the command line.
...
@@ -361,12 +359,12 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
...
@@ -361,12 +359,12 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
if
trace
:
if
trace
:
# If we're tracing code coverage, then we don't exit with status
# If we're tracing code coverage, then we don't exit with status
# if on a false return value from main.
# if on a false return value from main.
tracer
.
runctx
(
'runtest(test,
generate,
verbose, quiet,'
tracer
.
runctx
(
'runtest(test, verbose, quiet,'
' test_times, testdir)'
,
' test_times, testdir)'
,
globals
=
globals
(),
locals
=
vars
())
globals
=
globals
(),
locals
=
vars
())
else
:
else
:
try
:
try
:
ok
=
runtest
(
test
,
generate
,
verbose
,
quiet
,
test_times
,
ok
=
runtest
(
test
,
verbose
,
quiet
,
test_times
,
testdir
,
huntrleaks
)
testdir
,
huntrleaks
)
except
KeyboardInterrupt
:
except
KeyboardInterrupt
:
# print a newline separate from the ^C
# print a newline separate from the ^C
...
@@ -438,7 +436,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
...
@@ -438,7 +436,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
sys
.
stdout
.
flush
()
sys
.
stdout
.
flush
()
try
:
try
:
test_support
.
verbose
=
True
test_support
.
verbose
=
True
ok
=
runtest
(
test
,
generate
,
True
,
quiet
,
test_times
,
testdir
,
ok
=
runtest
(
test
,
True
,
quiet
,
test_times
,
testdir
,
huntrleaks
)
huntrleaks
)
except
KeyboardInterrupt
:
except
KeyboardInterrupt
:
# print a newline separate from the ^C
# print a newline separate from the ^C
...
@@ -502,7 +500,7 @@ def findtests(testdir=None, stdtests=STDTESTS, nottests=NOTTESTS):
...
@@ -502,7 +500,7 @@ def findtests(testdir=None, stdtests=STDTESTS, nottests=NOTTESTS):
tests
.
sort
()
tests
.
sort
()
return
stdtests
+
tests
return
stdtests
+
tests
def
runtest
(
test
,
generate
,
verbose
,
quiet
,
test_times
,
def
runtest
(
test
,
verbose
,
quiet
,
test_times
,
testdir
=
None
,
huntrleaks
=
False
):
testdir
=
None
,
huntrleaks
=
False
):
"""Run a single test.
"""Run a single test.
...
@@ -521,27 +519,26 @@ def runtest(test, generate, verbose, quiet, test_times,
...
@@ -521,27 +519,26 @@ def runtest(test, generate, verbose, quiet, test_times,
"""
"""
try
:
try
:
return
runtest_inner
(
test
,
generate
,
verbose
,
quiet
,
test_times
,
return
runtest_inner
(
test
,
verbose
,
quiet
,
test_times
,
testdir
,
huntrleaks
)
testdir
,
huntrleaks
)
finally
:
finally
:
cleanup_test_droppings
(
test
,
verbose
)
cleanup_test_droppings
(
test
,
verbose
)
def
runtest_inner
(
test
,
generate
,
verbose
,
quiet
,
test_times
,
def
runtest_inner
(
test
,
verbose
,
quiet
,
test_times
,
testdir
=
None
,
huntrleaks
=
False
):
testdir
=
None
,
huntrleaks
=
False
):
test_support
.
unload
(
test
)
test_support
.
unload
(
test
)
if
not
testdir
:
if
not
testdir
:
testdir
=
findtestdir
()
testdir
=
findtestdir
()
if
verbose
:
if
verbose
:
c
fp
=
None
c
apture_stdout
=
None
else
:
else
:
c
fp
=
cStringIO
.
StringIO
()
c
apture_stdout
=
cStringIO
.
StringIO
()
try
:
try
:
save_stdout
=
sys
.
stdout
save_stdout
=
sys
.
stdout
try
:
try
:
if
cfp
:
if
capture_stdout
:
sys
.
stdout
=
cfp
sys
.
stdout
=
capture_stdout
print
test
# Output file starts with test name
if
test
.
startswith
(
'test.'
):
if
test
.
startswith
(
'test.'
):
abstest
=
test
abstest
=
test
else
:
else
:
...
@@ -587,15 +584,16 @@ def runtest_inner(test, generate, verbose, quiet, test_times,
...
@@ -587,15 +584,16 @@ def runtest_inner(test, generate, verbose, quiet, test_times,
sys
.
stdout
.
flush
()
sys
.
stdout
.
flush
()
return
0
return
0
else
:
else
:
if
not
cfp
:
# Except in verbose mode, tests should not print anything
if
verbose
or
huntrleaks
:
return
1
return
1
output
=
cfp
.
getvalue
()
output
=
capture_stdout
.
getvalue
()
expected
=
test
+
"
\n
"
if
not
output
:
if
output
==
expected
or
huntrleaks
:
return
1
return
1
print
"test"
,
test
,
"produced unexpected output:"
print
"test"
,
test
,
"produced unexpected output:"
sys
.
stdout
.
flush
()
print
"*"
*
70
reportdiff
(
expected
,
output
)
print
output
print
"*"
*
70
sys
.
stdout
.
flush
()
sys
.
stdout
.
flush
()
return
0
return
0
...
@@ -720,48 +718,6 @@ def dash_R_cleanup(fs, ps, pic, abcs):
...
@@ -720,48 +718,6 @@ def dash_R_cleanup(fs, ps, pic, abcs):
# Collect cyclic trash.
# Collect cyclic trash.
gc
.
collect
()
gc
.
collect
()
def
reportdiff
(
expected
,
output
):
import
difflib
print
"*"
*
70
a
=
expected
.
splitlines
(
1
)
b
=
output
.
splitlines
(
1
)
sm
=
difflib
.
SequenceMatcher
(
a
=
a
,
b
=
b
)
tuples
=
sm
.
get_opcodes
()
def
pair
(
x0
,
x1
):
# x0:x1 are 0-based slice indices; convert to 1-based line indices.
x0
+=
1
if
x0
>=
x1
:
return
"line "
+
str
(
x0
)
else
:
return
"lines
%
d-
%
d"
%
(
x0
,
x1
)
for
op
,
a0
,
a1
,
b0
,
b1
in
tuples
:
if
op
==
'equal'
:
pass
elif
op
==
'delete'
:
print
"***"
,
pair
(
a0
,
a1
),
"of expected output missing:"
for
line
in
a
[
a0
:
a1
]:
print
"-"
,
line
,
elif
op
==
'replace'
:
print
"*** mismatch between"
,
pair
(
a0
,
a1
),
"of expected"
,
\
"output and"
,
pair
(
b0
,
b1
),
"of actual output:"
for
line
in
difflib
.
ndiff
(
a
[
a0
:
a1
],
b
[
b0
:
b1
]):
print
line
,
elif
op
==
'insert'
:
print
"***"
,
pair
(
b0
,
b1
),
"of actual output doesn't appear"
,
\
"in expected output after line"
,
str
(
a1
)
+
":"
for
line
in
b
[
b0
:
b1
]:
print
"+"
,
line
,
else
:
print
"get_opcodes() returned bad tuple?!?!"
,
(
op
,
a0
,
a1
,
b0
,
b1
)
print
"*"
*
70
def
findtestdir
():
def
findtestdir
():
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
file
=
sys
.
argv
[
0
]
file
=
sys
.
argv
[
0
]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment