Revise regrtest to compile entire standard library.
authorJeremy Hylton <jeremy@alum.mit.edu>
Mon, 27 Aug 2001 20:40:43 +0000 (20:40 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Mon, 27 Aug 2001 20:40:43 +0000 (20:40 +0000)
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

index fd990a951485f709d66b8d6e29f1e63c4ff5e9b9..14255185f063966d2952b5724086cab933c441ec 100644 (file)
@@ -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()