def run(self, inp): outcome = self.FAIL result = None self._coverage = [] with ExpectError(mute=True): with ExpectTimeout(self._timeout, mute=True): result = self.run_function(inp) outcome = self.PASS return result, outcome
def population_coverage(population, function): cumulative_coverage = [] all_coverage = set() for s in population: with Coverage() as cov: with ExpectError(mute=True): with ExpectTimeout(1, mute=True): function(s) all_coverage |= cov.coverage() cumulative_coverage.append(len(all_coverage)) return all_coverage, cumulative_coverage
def runTest(self, tc): suite = unittest.TestSuite() test_class = self.tm.__dict__[tc] for f in test_class.__dict__: if f.startswith('test_'): suite.addTest(test_class(f)) runner = unittest.TextTestRunner(verbosity=0, failfast=True) try: with ExpectTimeout(1): res = runner.run(suite) if res.wasSuccessful(): self.mutant.pm.un_detected.add(self) return res except SyntaxError: print('Syntax Error (%s)' % self.mutant.name) return None raise Exception('Unhandled exception during test execution')
# ### Exercise 2: Finding Bugs if __name__ == "__main__": print('\n### Exercise 2: Finding Bugs') if __package__ is None or __package__ == "": from ExpectError import ExpectError, ExpectTimeout else: from .ExpectError import ExpectError, ExpectTimeout if __name__ == "__main__": with ExpectError(): simple_grammar_fuzzer(nonterminal_grammar, log=True) if __name__ == "__main__": with ExpectTimeout(1): for i in range(10): print(simple_grammar_fuzzer(expr_grammar)) # ### Exercise 3: Grammars with Regular Expressions if __name__ == "__main__": print('\n### Exercise 3: Grammars with Regular Expressions') # #### Part 1: Convert regular expressions if __name__ == "__main__": print('\n#### Part 1: Convert regular expressions') # #### Part 2: Identify and expand regular expressions
i = 0 while True: if i < len(s): if s[i] == ' ': break i += 1 if __package__ is None or __package__ == "": from ExpectError import ExpectTimeout else: from .ExpectError import ExpectTimeout if __name__ == "__main__": trials = 100 with ExpectTimeout(2): for i in range(trials): s = fuzzer() hang_if_no_space(s) def collapse_if_too_large(s): if int(s) > 1000: raise ValueError if __name__ == "__main__": long_number = fuzzer(100, ord('0'), 10) print(long_number) if __name__ == "__main__":