mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 13:11:29 +00:00 
			
		
		
		
	
		
			
	
	
		
			56 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			56 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() |