From 2a8ec793533e196a92f30709c2114baacad40524 Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Mon, 27 Aug 2001 20:40:43 +0000 Subject: Revise regrtest to compile entire standard library. The tests are run from a copy of the library directory, where everything has been compiled by the compiler package. Add a raw_input() call at the end of the script, so that I can check the output before the temp directory with the compiled code is removed. --- Tools/compiler/regrtest.py | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/Tools/compiler/regrtest.py b/Tools/compiler/regrtest.py index fd990a9..1425518 100644 --- a/Tools/compiler/regrtest.py +++ b/Tools/compiler/regrtest.py @@ -21,35 +21,54 @@ def copy_test_suite(): print "Creating copy of test suite in", dest return dest +def copy_library(): + dest = tempfile.mktemp() + os.mkdir(dest) + libdir = os.path.split(test.__path__[0])[0] + os.system("cp -r %s/* %s" % (libdir, dest)) + print "Creating copy of standard library in", dest + return dest + def compile_files(dir): - print "Compiling", + print "Compiling", dir line_len = 10 for file in os.listdir(dir): base, ext = os.path.splitext(file) - if ext == '.py' and base[:4] == 'test': + 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, - compile(source) + try: + compile(source) + except SyntaxError, err: + print err + continue # make sure the .pyc file is not over-written os.chmod(source + "c", 444) + else: + path = os.path.join(dir, file) + if os.path.isdir(path): + print + compile_files(path) print -def run_regrtest(test_dir): +def run_regrtest(lib_dir): + test_dir = os.path.join(lib_dir, "test") os.chdir(test_dir) - os.system("%s -v regrtest.py" % sys.executable) + os.system("PYTHONPATH=%s %s -v regrtest.py -r" % (lib_dir, 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) + lib_dir = copy_library() + compile_files(lib_dir) + run_regrtest(lib_dir) + raw_input("Cleanup?") + cleanup(lib_dir) if __name__ == "__main__": main() -- cgit v0.12