mirror of https://github.com/python/cpython
56 lines
1.4 KiB
Python
56 lines
1.4 KiB
Python
|
"""Run the Python regression test using the compiler
|
||
|
|
||
|
This test runs the standard Python test suite using bytecode generated
|
||
|
by this compiler instead of by the builtin compiler.
|
||
|
|
||
|
The regression test is run with the interpreter in verbose mode so
|
||
|
that import problems can be observed easily.
|
||
|
"""
|
||
|
|
||
|
from compiler import compile
|
||
|
|
||
|
import os
|
||
|
import sys
|
||
|
import test
|
||
|
import tempfile
|
||
|
|
||
|
def copy_test_suite():
|
||
|
dest = tempfile.mktemp()
|
||
|
os.mkdir(dest)
|
||
|
os.system("cp -r %s/* %s" % (test.__path__[0], dest))
|
||
|
print "Creating copy of test suite in", dest
|
||
|
return dest
|
||
|
|
||
|
def compile_files(dir):
|
||
|
print "Compiling",
|
||
|
line_len = 10
|
||
|
for file in os.listdir(dir):
|
||
|
base, ext = os.path.splitext(file)
|
||
|
if ext == '.py' and base[:4] == 'test':
|
||
|
source = os.path.join(dir, file)
|
||
|
line_len = line_len + len(file) + 1
|
||
|
if line_len > 75:
|
||
|
print "\n\t",
|
||
|
line_len = len(source) + 9
|
||
|
print file,
|
||
|
compile(source)
|
||
|
# make sure the .pyc file is not over-written
|
||
|
os.chmod(source + "c", 444)
|
||
|
print
|
||
|
|
||
|
def run_regrtest(test_dir):
|
||
|
os.chdir(test_dir)
|
||
|
os.system("%s -v regrtest.py" % sys.executable)
|
||
|
|
||
|
def cleanup(dir):
|
||
|
os.system("rm -rf %s" % dir)
|
||
|
|
||
|
def main():
|
||
|
test_dir = copy_test_suite()
|
||
|
compile_files(test_dir)
|
||
|
run_regrtest(test_dir)
|
||
|
cleanup(test_dir)
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|