mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """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()
 | 
