source: python/vendor/Python-2.6.5/Tools/compiler/regrtest.py

Last change on this file was 2, checked in by Yuri Dario, 15 years ago

Initial import for vendor code.

  • Property svn:eol-style set to native
File size: 2.1 KB
Line 
1"""Run the Python regression test using the compiler
2
3This test runs the standard Python test suite using bytecode generated
4by this compiler instead of by the builtin compiler.
5
6The regression test is run with the interpreter in verbose mode so
7that import problems can be observed easily.
8"""
9
10from compiler import compileFile
11
12import os
13import sys
14import test
15import tempfile
16
17def copy_test_suite():
18 dest = tempfile.mkdtemp()
19 os.system("cp -r %s/* %s" % (test.__path__[0], dest))
20 print "Creating copy of test suite in", dest
21 return dest
22
23def copy_library():
24 dest = tempfile.mkdtemp()
25 libdir = os.path.split(test.__path__[0])[0]
26 print "Found standard library in", libdir
27 print "Creating copy of standard library in", dest
28 os.system("cp -r %s/* %s" % (libdir, dest))
29 return dest
30
31def compile_files(dir):
32 print "Compiling", dir, "\n\t",
33 line_len = 10
34 for file in os.listdir(dir):
35 base, ext = os.path.splitext(file)
36 if ext == '.py':
37 source = os.path.join(dir, file)
38 line_len = line_len + len(file) + 1
39 if line_len > 75:
40 print "\n\t",
41 line_len = len(source) + 9
42 print file,
43 try:
44 compileFile(source)
45 except SyntaxError, err:
46 print err
47 continue
48 # make sure the .pyc file is not over-written
49 os.chmod(source + "c", 444)
50 elif file == 'CVS':
51 pass
52 else:
53 path = os.path.join(dir, file)
54 if os.path.isdir(path):
55 print
56 print
57 compile_files(path)
58 print "\t",
59 line_len = 10
60 print
61
62def run_regrtest(lib_dir):
63 test_dir = os.path.join(lib_dir, "test")
64 os.chdir(test_dir)
65 os.system("PYTHONPATH=%s %s -v regrtest.py" % (lib_dir, sys.executable))
66
67def cleanup(dir):
68 os.system("rm -rf %s" % dir)
69
70def main():
71 lib_dir = copy_library()
72 compile_files(lib_dir)
73 run_regrtest(lib_dir)
74 raw_input("Cleanup?")
75 cleanup(lib_dir)
76
77if __name__ == "__main__":
78 main()
Note: See TracBrowser for help on using the repository browser.