Exemplo n.º 1
0
	def filterNoise(self, posExps, fInfos):
		fIdToFInfosMap = util.getFIdToInfoMap(fInfos)
		newPosExps = []

		failedSeqs = util.readFromFile(util.failedExpsFile)


		for posExp in posExps:
			posExp = posExp.rstrip("\n")

			isRpcNoise = False
			posExpFIds = posExp.split(" ")
			for fId in posExpFIds:
				fIdFInf = fIdToFInfosMap[fId]
				if util.isRpcNoise(fIdFInf):
					isRpcNoise = True
					break
			
			if isRpcNoise:
				#print "yes...rpc noise...posExp is " + posExp
				continue

			l = len(posExpFIds)
			pfx = " ".join(posExpFIds[0:l-1])	
			if pfx not in failedSeqs:
				newPosExps.append(posExp)

		return newPosExps		
Exemplo n.º 2
0
	def shortCutForGettingEqvCls(self):
		fIdToFInfosMap = util.getFIdToInfoMap(self.fInfos)
		failedFIdSeqs = util.getFIdSeqsThatFailed()
		expsConsidered = []
		for fIdsSeq in self.allFIdsMap.keys():
			if fIdsSeq != "":
				fstFId = (fIdsSeq.split(" "))[0]
				fstFInf = fIdToFInfosMap[fstFId]
				if (not util.isRpcNoise(fstFInf)) and (fstFId not in failedFIdSeqs) :
					self.getResSetOfFIdsInExec(fIdsSeq)
					expsConsidered.append(fstFId)
		self.writeInjFIds(expsConsidered, self.fInfos)			
Exemplo n.º 3
0
	def filterUsingPolicy(self, posExps, fInfos, policy):
		isFilterPolicy = util.isFilterPolicy(policy)
		isCovPolicy = util.isCoveragePolicy(policy)

		fIdToInfoMap = util.getFIdToInfoMap(fInfos)

		filteredPosExps1 = []
		if isFilterPolicy:
			for posExp in posExps:
				posExp = posExp.rstrip("\n")
				posExpFIds = posExp.split(" ")
				if policy.filter(fIdToInfoMap[posExpFIds[-1]]):
					filteredPosExps1.append(posExp)
		else:
			filteredPosExps1 = posExps
				
		filteredPosExps2 = []		
		if isCovPolicy:
			idsAlreadyInjected = []
			fIdToCovIdMap = {}
		
			f = open(util.injFIdsFile, "r")
			injFIds = f.readlines()
			f.close()

			for injFId in injFIds:
				covId = util.getCovId(injFId.strip("\n"), fIdToCovIdMap, policy, fIdToInfoMap)
				idsAlreadyInjected.append(covId)


			for posExp in filteredPosExps1:
				posExp = posExp.rstrip("\n")
				posExpFIds = posExp.split(" ")
				lastFId = posExpFIds[-1]
				
				lastCovId = util.getCovId(lastFId, fIdToCovIdMap, policy, fIdToInfoMap)
				if lastCovId not in idsAlreadyInjected:
					filteredPosExps2.append(posExp)
		else:
			filteredPosExps2 = filteredPosExps1

		return filteredPosExps2			
Exemplo n.º 4
0
	def writeEqvCls(self, expsConsidered, eqvClsMap, fInfos):
		fName = "/Users/pallavi/Research/faultInjection/hdfs-wd/write-eqv-final-haryadi/write-eqv-all/injFIds"
		f = open(fName, "r")
		lines = f.readlines()
		f.close()

		linesToWr = []
		fIdToInfoMap = util.getFIdToInfoMap(fInfos)
		count = 1
		for line in lines:
			if line.startswith("FID:"):
				fId = (line.strip("\n")).lstrip("FID:")
				eq = self.getEqvCl(fId, eqvClsMap)
				if eq != -1:
					fInf = fIdToInfoMap[fId]
					nId = fInf.nodeId
					#linesToWr.append(str(count)+"\t"+fId+"\t"+nId+"\t"+nId+":"+"%02d"+"\t"+str(eq)+"\n" %(int(count)))
					linesToWr.append(str(count)+"\t"+fId+"\t"+nId+"\t"+nId+":"+str(count)+"\t"+str(eq)+"\n")
					count = count + 1

		f = open(util.globFPtsPath+"eqvClsInfo/eqvCls", "w")
		f.writelines(linesToWr)
		f.close()
Exemplo n.º 5
0
#!/usr/bin/python
import os
import sys

import util
import fInfo
import runExp

stackDepth = 3
inclPostExpFIds = False

p = fInfo.Parser()
p.getFIdDescStrs("/tmp/fi/glob/failPts/fIdStrs", stackDepth)
fInfos = p.getFInfos()
fIdTofInfoMap = util.getFIdToInfoMap(fInfos) 

fName = sys.argv[1]
print "fName is " + fName
f = open(fName, "r")
fIdsLn = f.readline()
f.close()


fIdsLn = fIdsLn.strip("\n")
fIds = fIdsLn.split(" ")
fIds = set(fIds)


outputFName = sys.argv[2]
print "Output file is " + outputFName
f = open(outputFName, "w")
Exemplo n.º 6
0
	def generateFailPtsToExplore (self, posExpsFile, injFIdsFile, fInfos, policies, useEqvCl, 
			clsLast, outFile):
		if not os.path.exists(posExpsFile):
			return

		posExpsF = open(posExpsFile, 'r')	
		posExps = posExpsF.readlines()
		posExpsF.close()

		posExps = self.filterNoise(posExps, fInfos)

		fltExps = posExps
		covPols = []
		for policy in policies:
			fltExps = self.filterUsingPolicy(fltExps, fInfos, policy)
			isCovPolicy = util.isCoveragePolicy(policy)
			if isCovPolicy:
				covPols.append(policy)

		clsExps = fltExps
		if useEqvCl:
			self.eqvCls.getEqvClsForRFIds(clsExps)
			lFIdToPrevFIdsMap = {}
			l = 0

			for clsExp in clsExps:
				clsExp = clsExp.rstrip("\n")
				clsExpFIds = clsExp.split(" ")
				l = len(clsExpFIds)
				if(l <= 1):
					lFIdToPrevFIdsMap[clsExp] = []
				else:	
					lFId = clsExpFIds[-1]
					prevFIds = " ".join(clsExpFIds[0:l-1])
					if(lFId in lFIdToPrevFIdsMap.keys()):
						listOfPrevFIdsSets = lFIdToPrevFIdsMap[lFId]
						foundEqvCls = False
						for s in listOfPrevFIdsSets:
							if(self.isEqv(prevFIds, s)):
								s.add(prevFIds)
								foundEqvCls = True
								break
								
						if (not foundEqvCls):
							listOfPrevFIdsSets.append(set([prevFIds]))

					else:
						lFIdToPrevFIdsMap[lFId] = [set([prevFIds])]


			clsExps = self.getEqvClsOfExps(lFIdToPrevFIdsMap, useEqvCl, clsExps)	

		else:
			if clsLast:
				policy = None
				fIdToCovIdMap = {}
				fIdToInfoMap = util.getFIdToInfoMap(fInfos)
				n = len(covPols)
				if n != 0:
					assert (n == 1)
					policy = covPols[0]

				lFIdToExpsMap = {}
				for clsExp in clsExps:
					clsExp = clsExp.rstrip("\n")
					clsExpFIds = clsExp.split(" ")
					lFId = clsExpFIds[-1]
					
					if n != 0:
						lFId = util.getCovId(lFId, fIdToCovIdMap, policy, fIdToInfoMap) 
					
					
					if lFId in lFIdToExpsMap:
						sExps = lFIdToExpsMap[lFId]
						sExps.add(clsExp)
					else:
						lFIdToExpsMap[lFId] = set([clsExp])
				
				newClsExps = []
				for l, s in lFIdToExpsMap.items():
					for exp in s:
						newClsExps.append(exp.rstrip("\n")+"\n")
					newClsExps.append("-----------------------------------------------------------\n")
				clsExps = newClsExps	


			else:	
				newClsExps = []
				for clsExp in clsExps:
					newClsExps.append(clsExp.rstrip("\n")+"\n")
					newClsExps.append("-----------------------------------------------------------\n")
				clsExps = newClsExps


		self.printEqvClsOfExps(clsExps, outFile)