cinap_lenrekadd hg and python4bb9e2215 years agoHistory
78 lines · 2.1 KB · Python
RawDownload
"""Run the Python regression test using the compiler This test runs the standard Python test suite using bytecode generatedby this compiler instead of by the builtin compiler. The regression test is run with the interpreter in verbose mode sothat import problems can be observed easily.""" from compiler import compileFile import osimport sysimport testimport tempfile def copy_test_suite():    dest = tempfile.mkdtemp()    os.system("cp -r %s/* %s" % (test.__path__[0], dest))    print "Creating copy of test suite in", dest    return dest def copy_library():    dest = tempfile.mkdtemp()    libdir = os.path.split(test.__path__[0])[0]    print "Found standard library in", libdir    print "Creating copy of standard library in", dest    os.system("cp -r %s/* %s" % (libdir, dest))    return dest def compile_files(dir):    print "Compiling", dir, "\n\t",    line_len = 10    for file in os.listdir(dir):        base, ext = os.path.splitext(file)        if ext == '.py':            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,            try:                compileFile(source)            except SyntaxError, err:                print err                continue            # make sure the .pyc file is not over-written            os.chmod(source + "c", 444)        elif file == 'CVS':            pass        else:            path = os.path.join(dir, file)            if os.path.isdir(path):                print                print                compile_files(path)                print "\t",                line_len = 10    print def run_regrtest(lib_dir):    test_dir = os.path.join(lib_dir, "test")    os.chdir(test_dir)    os.system("PYTHONPATH=%s %s -v regrtest.py" % (lib_dir, sys.executable)) def cleanup(dir):    os.system("rm -rf %s" % dir) def main():    lib_dir = copy_library()    compile_files(lib_dir)    run_regrtest(lib_dir)    raw_input("Cleanup?")    cleanup(lib_dir) if __name__ == "__main__":    main()