def apply_FAA(self, filtered_operators, original_data_dict, item, operator): temp_data_dict = original_data_dict.copy() call("./compilation_scripts/unzip.sh") components = re.findall( r'([^=]+)((?<!=)=(?!=))(?:^|\W)(.*)(palloc0)(?:$|\W)(.*)', item[2]) components2 = re.findall( r'([^=]+)((?<!=)=(?!=))(?:^|\W)(.*)(palloc)(?:$|\W)(.*)', item[2]) if components: selected = components else: selected = components2 if not selected: return None selected = list(selected[0]) selected = self.FAA_schemata(selected) temp_mutant = ''.join(selected) temp_data_dict[item[1]] = temp_mutant db_obj.updateMutatedLine(item[0], temp_mutant) flag = 1 write_to_disc(temp_data_dict, item[6], item[0], self.mutantSourcesDir, flag) print( "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" ) print("Mutation of ========> {original} =====to====> {mutated}".format( original=item[2], mutated=temp_mutant)) print( "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" ) kill_flag = False for line in runProcess('./compilation_scripts/grep-exec.sh'.split()): # print(line) if re.findall(r'\b(FAILED)\b', str(line)) or re.findall( r'\b(failed 1 among)\b', str(line)): print('Mutant Killed!') kill_flag = True break print('Mutant Killed!') if kill_flag: self.FAA_COUNTER_killed += 1 db_obj.updateMstatus(item[0], 'killed') else: self.FAA_COUNTER_alive += 1 db_obj.update(item[0], 1) db_obj.updateMstatus(item[0], 'alive') flag = 2 write_to_disc(original_data_dict, item[4], item[0], self.targetCleanDir, flag) write_to_disc(temp_data_dict, item[4], item[0], self.targetBuggyDir, flag)
def apply_RMFS(self, filtered_operators, original_data_dict, item, operator): temp_data_dict = original_data_dict.copy() call("./compilation_scripts/unzip.sh") components = re.findall(r'(?:^|\W)(free)(?:$|\W)(.*)', item[2]) components2 = re.findall(r'(?:^|\W)(pfree)(?:$|\W)(.*)', item[2]) if components or components2: del temp_data_dict[item[1]] flag = 1 write_to_disc(temp_data_dict, item[6], item[0], self.mutantSourcesDir, flag) print( "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" ) print("Mutation of ========> {original} =====to====> {mutated}". format(original=item[2], mutated=temp_mutant)) print( "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" ) kill_flag = False for line in runProcess( './compilation_scripts/grep-exec.sh'.split()): # print(line) if re.findall(r'\b(FAILED)\b', str(line)) or re.findall( r'\b(failed 1 among)\b', str(line)): kill_flag = True print('Mutant Killed!') break if kill_flag: self.RMFS_COUNTER_killed += 1 db_obj.updateMstatus(item[0], 'killed') else: self.RMFS_COUNTER_alive += 1 db_obj.update(item[0], 1) db_obj.updateMstatus(item[0], 'alive') flag = 2 write_to_disc(original_data_dict, item[4], item[0], self.targetCleanDir, flag) write_to_disc(temp_data_dict, item[4], item[0], self.targetBuggyDir, flag)