home *** CD-ROM | disk | FTP | other *** search
- """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()
-