def appendAndExecuteSeq(seq, n, eseqs, nseqs): ok = False propok = False classTable = dict.fromkeys(sut.actionClasses(), 0) timeover = time.time() - start >= timeout while n > 0: n -= 1 a = sut.randomEnabled(rgen) seq.append(a) if equal(seq, eseqs) or equal(seq, nseqs): continue ok = sut.safely(a) propok = sut.check() classTable[sut.actionClass(a)] += 1 if running: argRunning(a) if contract(ok, propok, seq, eseqs): break timeover = time.time() - start >= timeout if timeover: return (ok, propok, classTable, timeover) return (ok, propok, classTable, timeover)
def abstraction(s): if len(s) <= 3: return (sut.actionClass(s), ) else: return (sut.actionClass(s), s[3])
sources[f] = sut.loadTest(f) print("DETAILED PROVENANCE SUMMARY:") lsrcs = sorted(list(lowLevel.keys()), key=lambda x: len(lowLevel[x])) print() print() print("BY ACTION CLASS:") classes = {} for s in lsrcs: ss = s.split(":") srcAct = sources[ss[0]][int(ss[1])] print(s, len(lowLevel[s]), sut.prettyName(srcAct[0])) c = sut.actionClass(srcAct) if c in classes: classes[c].extend(lowLevel[s]) else: classes[c] = lowLevel[s] csrcs = sorted(list(classes.keys()), key=lambda x: len(classes[x])) for c in csrcs: print(c, len(classes[c])) print() print() print("FILE LEVEL PROVENANCE SUMMARY:")
def actionClassPools(sut): dic = defaultdict(list) for a in sut.actions(): dic[sut.actionClass(a)].append(a) return dic
acts = sut.randomEnableds(rgen, seed) else: acts = sut.randomEnableds(rgen, 1) if nonErrorSeqs: newSeq = random.choice(nonErrorSeqs) newSeq.extend(acts) else: newSeq = acts if isNewIn(newSeq, errorSeqs, nonErrorSeqs): continue numActionClasses = dict.fromkeys(sut.actionClasses(), 0) for a in acts: numActionClasses[sut.actionClass(a)] += 1 if running: argRunning(a, sut, start) isOk = sut.safely(a) isPropOk = sut.check() if not isContracts(a, isOk, isPropOk, sut, faults, failureCount, errorSeqs): break if isFilters(newSeq, numActionClasses, isOk, isPropOk, depth): nonErrorSeqs.append(newSeq) #printSeq(newSeq) if coverage:
import random import os import glob # Appending current working directory to sys.path # So that user can run randomtester from the directory where sut.py is located current_working_dir = os.getcwd() sys.path.append(current_working_dir) import sut sut = sut.sut() classes = [] nacts = len(sut.actions()) for a in sut.actions(): if sut.actionClass(a) not in classes: classes.append(sut.actionClass(a)) #print len(classes) n = int(sys.argv[1]) corpfile = sys.argv[2] outfile = sys.argv[3] tests = [] test = [] if "--prefix" in sys.argv: for f in glob.glob(corpfile+"*.*"): for l in open(f): if "--raw" not in sys.argv:
failures[ft][fail] = [] failInOrder.append(fail) t = sut.loadTest(base.replace("normalized", "full")) allFullTests[sut.captureReplay(t)] = True if t not in failures["full"][fail]: failures["full"][fail].append(t) r = sut.loadTest(base.replace("normalized", "reduced")) allReducedTests[sut.captureReplay(r)] = True if r not in failures["reduced"][fail]: failures["reduced"][fail].append(r) n = sut.loadTest(base) allNormalizedTests[sut.captureReplay(n)] = True if n not in failures["normalized"][fail]: failures["normalized"][fail].append(n) for s in t: if sut.actionClass(s) not in allFullActions: allFullActions.append(sut.actionClass(s)) lengths["full"].append(len(t)) actions["full"].append(len(set(map(sut.actionClass, t)))) times["full"].append(0.0) for s in r: if sut.actionClass(s) not in allReducedActions: allReducedActions.append(sut.actionClass(s)) lengths["reduced"].append(len(r)) actions["reduced"].append(len(set(map(sut.actionClass, r)))) for s in n: if sut.actionClass(s) not in allNormalizedActions: allNormalizedActions.append(sut.actionClass(s)) lengths["normalized"].append(len(n)) actions["normalized"].append(len(set(map(sut.actionClass, n)))) for l in open(base.replace("normalized", "reducetime")):
import sut import sys import random sut = sut.sut() classes = [] nacts = len(sut.actions()) for a in sut.actions(): if sut.actionClass(a) not in classes: classes.append(sut.actionClass(a)) #print len(classes) n = int(sys.argv[1]) corpfile = sys.argv[2] outfile = sys.argv[3] tests = [] test = [] for l in open(corpfile): if ("="*50) in l: tests.append(test) test = [] test.append(l[:-1]) #print len(tests) #print tests[0] chains = {} for t in tests: for pos in xrange(n+1,len(t)):
failures[ft][fail] = [] failInOrder.append(fail) t = sut.loadTest(base.replace("normalized","full")) allFullTests[sut.captureReplay(t)] = True if t not in failures["full"][fail]: failures["full"][fail].append(t) r = sut.loadTest(base.replace("normalized","reduced")) allReducedTests[sut.captureReplay(r)] = True if r not in failures["reduced"][fail]: failures["reduced"][fail].append(r) n = sut.loadTest(base) allNormalizedTests[sut.captureReplay(n)] = True if n not in failures["normalized"][fail]: failures["normalized"][fail].append(n) for s in t: if sut.actionClass(s) not in allFullActions: allFullActions.append(sut.actionClass(s)) lengths["full"].append(len(t)) actions["full"].append(len(set(map(sut.actionClass,t)))) times["full"].append(0.0) for s in r: if sut.actionClass(s) not in allReducedActions: allReducedActions.append(sut.actionClass(s)) lengths["reduced"].append(len(r)) actions["reduced"].append(len(set(map(sut.actionClass,r)))) for s in n: if sut.actionClass(s) not in allNormalizedActions: allNormalizedActions.append(sut.actionClass(s)) lengths["normalized"].append(len(n)) actions["normalized"].append(len(set(map(sut.actionClass,n)))) for l in open(base.replace("normalized","reducetime")):
import sut import sys import random import glob sut = sut.sut() classes = [] nacts = len(sut.actions()) for a in sut.actions(): if sut.actionClass(a) not in classes: classes.append(sut.actionClass(a)) #print len(classes) n = int(sys.argv[1]) corpfile = sys.argv[2] outfile = sys.argv[3] tests = [] test = [] if "--prefix" in sys.argv: for f in glob.glob(corpfile+".*"): for l in open(f): if "--raw" not in sys.argv: test.append(l[:-1]) else: test.append(sut.actionClass(sut.playable(l[:-1]))) if test != []: tests.append(test) test = []