Lines Matching refs:args
130 def targets_parser(args, description): argument
131 parser = argparse.ArgumentParser(prog=args.pop(0), description=description)
137 args, extra = parser.parse_known_args(args)
138 args.extra = extra
140 args.TARGET = parse_targets(args.TARGET)
142 return args
145 def parse_env_flags(args, flags): argument
165 args.asan = set_sanitizer('address', args.asan, san, nosan)
166 args.msan = set_sanitizer('memory', args.msan, san, nosan)
167 args.ubsan = set_sanitizer('undefined', args.ubsan, san, nosan)
169 args.sanitize = args.asan or args.msan or args.ubsan
171 return args
205 def build_parser(args): argument
217 parser = argparse.ArgumentParser(prog=args.pop(0), description=description)
366 args = parser.parse_args(args)
367 args = parse_env_flags(args, ' '.join(
368 [args.cppflags, args.cflags, args.cxxflags, args.ldflags]))
371 if args.msan and (args.asan or args.ubsan):
373 if args.msan_track_origins and not args.msan:
375 if args.ubsan_pointer_overflow and not args.ubsan:
377 if args.sanitize_recover and not args.sanitize:
380 return args
383 def build(args): argument
385 args = build_parser(args)
390 targets = args.TARGET
391 cc = args.cc
392 cxx = args.cxx
393 cppflags = shlex.split(args.cppflags)
394 cflags = shlex.split(args.cflags)
395 ldflags = shlex.split(args.ldflags)
396 cxxflags = shlex.split(args.cxxflags)
397 mflags = shlex.split(args.mflags)
402 '-DDEBUGLEVEL={}'.format(args.debug),
403 '-DMEM_FORCE_MEMORY_ACCESS={}'.format(args.memory_access),
404 '-DFUZZ_RNG_SEED_SIZE={}'.format(args.fuzz_rng_seed_size),
408 assert not (args.fuzzer and args.coverage)
409 if args.coverage:
413 if args.fuzzer:
415 args.lib_fuzzing_engine = ''
417 mflags += ['LIB_FUZZING_ENGINE={}'.format(args.lib_fuzzing_engine)]
419 if args.sanitize_recover:
423 if args.sanitize:
426 if args.msan:
428 if args.msan_track_origins:
432 cppflags += [args.msan_extra_cppflags]
433 cflags += [args.msan_extra_cflags]
434 cxxflags += [args.msan_extra_cxxflags]
435 ldflags += [args.msan_extra_ldflags]
437 if args.asan:
440 if args.ubsan:
442 if not args.ubsan_pointer_overflow:
446 if args.stateful_fuzzing:
449 if args.fuzzing_mode:
452 if args.lib_fuzzing_engine == 'libregression.a':
494 def libfuzzer_parser(args): argument
505 parser = argparse.ArgumentParser(prog=args.pop(0), description=description)
525 args, extra = parser.parse_known_args(args)
526 args.extra = extra
528 if args.TARGET and args.TARGET not in TARGETS:
529 raise RuntimeError('{} is not a valid target'.format(args.TARGET))
531 return args
560 def libfuzzer_cmd(args): argument
562 args = libfuzzer_parser(args)
566 libfuzzer(args.TARGET, args.corpora, args.artifact, args.seed, args.extra)
570 def afl_parser(args): argument
579 parser = argparse.ArgumentParser(prog=args.pop(0), description=description)
599 args, extra = parser.parse_known_args(args)
600 args.extra = extra
602 if args.TARGET and args.TARGET not in TARGETS:
603 raise RuntimeError('{} is not a valid target'.format(args.TARGET))
605 if not args.corpora:
606 args.corpora = abs_join(CORPORA_DIR, args.TARGET)
607 if not args.output:
608 args.output = abs_join(CORPORA_DIR, '{}-afl'.format(args.TARGET))
610 return args
613 def afl(args): argument
615 args = afl_parser(args)
619 target = abs_join(FUZZ_DIR, args.TARGET)
621 corpora = create(args.corpora)
622 output = create(args.output)
624 cmd = [args.afl_fuzz, '-i', corpora, '-o', output] + args.extra
631 def regression(args): argument
639 args = targets_parser(args, description)
643 for target in args.TARGET:
652 def gen_parser(args): argument
662 parser = argparse.ArgumentParser(prog=args.pop(0), description=description)
700 args, extra = parser.parse_known_args(args)
701 args.extra = extra
703 if args.TARGET and args.TARGET not in TARGETS:
704 raise RuntimeError('{} is not a valid target'.format(args.TARGET))
706 if not args.seed:
707 args.seed = abs_join(CORPORA_DIR, '{}-seed'.format(args.TARGET))
709 if not os.path.isfile(args.decodecorpus):
711 format(args.decodecorpus, abs_join(FUZZ_DIR, '..')))
713 return args
716 def gen(args): argument
718 args = gen_parser(args)
723 seed = create(args.seed)
725 info = TARGET_INFO[args.TARGET]
728 number = max(args.number, 1000)
730 number = args.number
732 args.decodecorpus,
733 '-n{}'.format(args.number),
741 '--max-block-size-log={}'.format(min(args.max_size_log, 17))
744 cmd += ['--max-content-size-log={}'.format(args.max_size_log)]
760 max_dict_size_log = max(min_dict_size_log + 1, args.max_size_log)
764 args.zstd,
787 def minimize(args): argument
793 args = targets_parser(args, description)
798 for target in args.TARGET:
802 extra_args = [corpus, "-merge=1"] + args.extra
813 def zip_cmd(args): argument
818 args = targets_parser(args, description)
823 for target in args.TARGET:
832 def list_cmd(args): argument
836 def short_help(args): argument
837 name = args[0]
841 def help(args): argument
842 short_help(args)
859 args = sys.argv
860 if len(args) < 2:
861 help(args)
863 if args[1] == '-h' or args[1] == '--help' or args[1] == '-H':
864 help(args)
866 command = args.pop(1)
867 args[0] = "{} {}".format(args[0], command)
869 return build(args)
871 return libfuzzer_cmd(args)
873 return regression(args)
875 return afl(args)
877 return gen(args)
879 return minimize(args)
881 return zip_cmd(args)
883 return list_cmd(args)
884 short_help(args)