예제 #1
0
    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
예제 #2
0
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
예제 #3
0
 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')
예제 #4
0
# ### 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
예제 #5
0
    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__":