diff -r 000000000000 -r 83f4b4db085c srcanamdw_os/leavescan/test/LET/logdiff.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/srcanamdw_os/leavescan/test/LET/logdiff.py Tue Feb 02 01:39:43 2010 +0200 @@ -0,0 +1,80 @@ +import sys +import os +from os import listdir +from os.path import isdir +import csv + +def check_argv(name): + if not os.path.exists(name): + print name,' doesn\'t exist.' + return False + if not os.path.isdir(name): + print name,' is not a dir.' + return False + file_list = os.listdir(name) + properDir = False + for current_file in file_list: + if current_file.endswith('.csv'): + properDir =True + break + if not properDir: + print name,' is not a LET log dir' + return False + return True + +def find_logfile(name): + file_list = os.listdir(name) + for current_file in file_list: + if current_file.endswith('.csv'): + return name+'\\'+current_file + return None + + +def get_result_map(csvfile): + map = {} + file = open(csvfile,"r") + lines = csv.reader(file) + skip_file_line = True + for line in lines: + if skip_file_line: + skip_file_line=False + else: + case_name = line[0] + test_result = line[3] + if map.has_key(case_name): + print 'Duplicate casename:',case_name,' ignored' + else: + map[case_name] = test_result + return map + +def diff_result(map_old, map_new): + keys_new = map_new.keys() + for key_new in keys_new: + item_new = map_new[key_new] + value_new = item_new + if map_old.has_key(key_new): + value_old = map_old[key_new] + if not value_old == value_new: + print 'CHANGE:',key_new,value_old,'-->',value_new + else: + print 'ADD:',key_new,value_new + keys_old = map_old.keys() + for key_old in map_old: + item_old = map_old[key_old] + value_old = item_old + if not map_new.has_key(key_old): + print 'REMOVE:',key_old,value_old + +if __name__ == '__main__': + argv = sys.argv[1:] + if len(argv)<2: + print 'usage: logdiff base_log_dir derived_log_dir' + else : + old_file = argv[0] + new_file = argv[1] + if check_argv(old_file) and check_argv(new_file): + new_map = get_result_map(find_logfile(new_file)) + old_map = get_result_map(find_logfile(old_file)) + diff_result(old_map,new_map) + +