symbian-qemu-0.9.1-12/python-2.6.1/Tools/compiler/regrtest.py
changeset 1 2fb8b9db1c86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/python-2.6.1/Tools/compiler/regrtest.py	Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,78 @@
+"""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 compileFile
+
+import os
+import sys
+import test
+import 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()