Esempio n. 1
0
 def test_filter(self):
     host = MockHost()
     fuzzers = host.fuzzers
     self.assertEqual(len(Fuzzer.filter(fuzzers, '')), 5)
     self.assertEqual(len(Fuzzer.filter(fuzzers, '/')), 5)
     self.assertEqual(len(Fuzzer.filter(fuzzers, 'mock')), 5)
     self.assertEqual(len(Fuzzer.filter(fuzzers, 'package1')), 3)
     self.assertEqual(len(Fuzzer.filter(fuzzers, 'target1')), 2)
     self.assertEqual(len(Fuzzer.filter(fuzzers, '1/2')), 1)
     self.assertEqual(len(Fuzzer.filter(fuzzers, 'target4')), 0)
     with self.assertRaises(Fuzzer.NameError):
         Fuzzer.filter(fuzzers, 'a/b/c')
Esempio n. 2
0
def main():
    parser = Args.make_parser(
        description='Lists fuzzers matching NAME if provided, or all fuzzers.',
        name_required=False)
    args = parser.parse_args()

    host = Host.from_build()

    fuzzers = Fuzzer.filter(host.fuzzers, args.name)
    if len(fuzzers) == 0:
        print('No matching fuzzers.')
        return 1
    print('Found %d matching fuzzers:' % len(fuzzers))
    for fuzzer in fuzzers:
        print('  %s/%s' % fuzzer)
    return 0
Esempio n. 3
0
def main():
    parser = Args.make_parser(
        description='Reports status for the fuzzer matching NAME if provided, '
        +
        'or for all running fuzzers.  Status includes execution state, corpus '
        + 'size, and number of artifacts.',
        name_required=False)
    args = parser.parse_args()

    host = Host()
    device = Device.from_args(host, args)
    fuzzers = Fuzzer.filter(host.fuzzers, args.name)

    pids = device.getpids()
    silent = True
    for pkg, tgt in fuzzers:
        fuzzer = Fuzzer(device, pkg, tgt)
        if not args.name and tgt not in pids:
            continue
        silent = False
        if tgt in pids:
            print(str(fuzzer) + ': RUNNING')
        else:
            print(str(fuzzer) + ': STOPPED')
        print('    Output path:  ' + fuzzer.data_path())
        print('    Corpus size:  %d inputs / %d bytes' %
              fuzzer.measure_corpus())
        artifacts = fuzzer.list_artifacts()
        if len(artifacts) == 0:
            print('    Artifacts:    None')
        else:
            print('    Artifacts:    ' + artifacts[0])
            for artifact in artifacts[1:]:
                print('                  ' + artifact)
    if silent:
        print(
            'No fuzzers are running.  Include \'name\' to check specific fuzzers.'
        )
        return 1
    return 0