diff options
Diffstat (limited to 'tools/regression/test/test.py')
-rw-r--r-- | tools/regression/test/test.py | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/tools/regression/test/test.py b/tools/regression/test/test.py deleted file mode 100644 index 5a627ea2b..000000000 --- a/tools/regression/test/test.py +++ /dev/null @@ -1,181 +0,0 @@ -# Copyright (c) MetaCommunications, Inc. 2003-2005 -# -# Distributed under the Boost Software License, Version 1.0. -# (See accompanying file LICENSE_1_0.txt or copy at -# http://www.boost.org/LICENSE_1_0.txt) - -import difflib -import os -import re -import shutil -import string -import sys - - - -def scan_for_test_cases(): - return [ os.path.join( "test-cases", x ) for x in os.listdir( "test-cases" ) if x != "CVS" ] - -def clean_dir( dir ): - if os.path.exists( dir ): - shutil.rmtree( dir ) - os.makedirs( dir ) - -def system( commands ): - if sys.platform == 'win32': - f = open( 'tmp.cmd', 'w' ) - f.write( string.join( commands, '\n' ) ) - f.close() - rc = os.system( 'tmp.cmd' ) - os.unlink( 'tmp.cmd' ) - return rc - else: - rc = os.system( '&&'.join( commands ) ) - return rc - -def checked_system( commands, valid_return_codes = [ 0 ] ): - rc = system( commands ) - if rc not in [ 0 ] + valid_return_codes: - raise Exception( 'Command sequence "%s" failed with return code %d' % ( commands, rc ) ) - return rc - -def list_recursively( dir ): - r = [] - for root, dirs, files in os.walk( dir, topdown=False ): - root = root[ len( dir ) + 1 : ] - r.extend( [ os.path.join( root, x ) for x in dirs ] ) - r.extend( [ os.path.join( root, x ) for x in files ] ) - - return r - -def find_process_jam_log(): - root = "../../../" - - for root, dirs, files in os.walk( os.path.join( root, "bin.v2" ), topdown=False ): - if "process_jam_log.exe" in files: - return os.path.abspath( os.path.normpath( os.path.join( root, "process_jam_log.exe" ) ) ) - if "process_jam_log" in files: - return os.path.abspath( os.path.normpath( os.path.join( root, "process_jam_log" ) ) ) - return None - -def process_jam_log( executable, file, locate_root, results_dir ): - args = [] - args.append( executable ) - # args.append( '--echo' ) - args.append( '--create-directories' ) - args.append( '--v2' ) - args.append( locate_root ) - args.append( '<' ) - args.append( file ) - - cmd = " ".join( args ) - print "Running process_jam_log (%s)" % cmd - checked_system( [ cmd ] ) - - -def read_file( file_path ): - f = open( file_path ) - try: - return f.read() - finally: - f.close() - -def remove_timestamps( log_lines ): - return [ re.sub( "timestamp=\"[^\"]+\"", "timestamp=\"\"", x ) for x in log_lines ] - -def determine_locate_root( bjam_log ): - locate_root = None - f = open( 'bjam.log' ) - try: - locate_root_re = re.compile( r'locate-root\s+"(.*)"' ) - for l in f.readlines(): - m = locate_root_re.match( l ) - if m: - locate_root = m.group(1) - break - finally: - f.close() - return locate_root - -def read_file( path ): - f = open( path ) - try: - return f.read() - finally: - f.close() - -def read_file_lines( path ): - f = open( path ) - try: - return f.readlines() - finally: - f.close() - -def write_file( path, content ): - f = open( path, 'w' ) - try: - return f.write( content ) - finally: - f.close() - -def write_file_lines( path, content ): - f = open( path, 'w' ) - try: - return f.writelines( content ) - finally: - f.close() - - -def run_test_cases( test_cases ): - process_jam_log_executable = find_process_jam_log() - print 'Found process_jam_log: %s' % process_jam_log_executable - initial_dir = os.getcwd() - for test_case in test_cases: - os.chdir( initial_dir ) - print 'Running test case "%s"' % test_case - os.chdir( test_case ) - if os.path.exists( "expected" ): - locate_root = determine_locate_root( 'bjam.log' ) - print 'locate_root: %s' % locate_root - - actual_results_dir = os.path.join( test_case, "actual" ) - clean_dir( "actual" ) - os.chdir( "actual" ) - root = os.getcwd() - i = 0 - while 1: - if i == 0: - bjam_log_file = 'bjam.log' - else: - bjam_log_file = 'bjam.log.%0d' % i - i += 1 - print 'Looking for %s' % bjam_log_file - if not os.path.exists( os.path.join( '..', bjam_log_file ) ): - print ' does not exists' - break - print ' found' - write_file_lines(bjam_log_file.replace( 'bjam', 'bjam_' ), - [ x.replace( locate_root, root ) for x in read_file_lines( os.path.join( '..', bjam_log_file ) ) ] ) - - process_jam_log( executable = process_jam_log_executable - , results_dir = "." - , locate_root = root - , file=bjam_log_file.replace( 'bjam', 'bjam_' ) ) - - actual_content = list_recursively( "." ) - actual_content.sort() - result_xml = [] - for test_log in [ x for x in actual_content if os.path.splitext( x )[1] == '.xml' ]: - print 'reading %s' % test_log - result = [ re.sub( r'timestamp="(.*)"', 'timestamp="xxx"', x ) for x in read_file_lines( test_log ) ] - result_xml.extend( result ) - - write_file_lines( 'results.xml', result_xml ) - os.chdir( '..' ) - assert read_file( 'expected/results.xml' ) == read_file( 'actual/results.xml' ) - os.chdir( '..' ) - else: - raise ' Test case "%s" doesn\'t contain the expected results directory ("expected" )' % ( test_case ) - -run_test_cases( scan_for_test_cases() ) -# print find_process_jam_log() |