Lines Matching refs:args
99 def targets_parser(args, description): argument
100 parser = argparse.ArgumentParser(prog=args.pop(0), description=description)
106 args, extra = parser.parse_known_args(args)
107 args.extra = extra
109 args.TARGET = parse_targets(args.TARGET)
111 return args
114 def parse_env_flags(args, flags): argument
134 args.asan = set_sanitizer('address', args.asan, san, nosan)
135 args.msan = set_sanitizer('memory', args.msan, san, nosan)
136 args.ubsan = set_sanitizer('undefined', args.ubsan, san, nosan)
138 args.sanitize = args.asan or args.msan or args.ubsan
140 return args
171 def build_parser(args): argument
183 parser = argparse.ArgumentParser(prog=args.pop(0), description=description)
322 args = parser.parse_args(args)
323 args = parse_env_flags(args, ' '.join(
324 [args.cppflags, args.cflags, args.cxxflags, args.ldflags]))
327 if args.msan and (args.asan or args.ubsan):
329 if args.msan_track_origins and not args.msan:
331 if args.ubsan_pointer_overflow and not args.ubsan:
333 if args.sanitize_recover and not args.sanitize:
336 return args
339 def build(args): argument
341 args = build_parser(args)
346 targets = args.TARGET
347 cc = args.cc
348 cxx = args.cxx
349 cppflags = [args.cppflags]
350 cflags = [args.cflags]
351 ldflags = [args.ldflags]
352 cxxflags = [args.cxxflags]
353 mflags = [args.mflags] if args.mflags else []
358 '-DZSTD_DEBUG={}'.format(args.debug),
359 '-DMEM_FORCE_MEMORY_ACCESS={}'.format(args.memory_access),
360 '-DFUZZ_RNG_SEED_SIZE={}'.format(args.fuzz_rng_seed_size),
363 mflags += ['LIB_FUZZING_ENGINE={}'.format(args.lib_fuzzing_engine)]
366 if args.coverage:
371 if args.sanitize_recover:
375 if args.sanitize:
378 if args.msan:
380 if args.msan_track_origins:
384 cppflags += [args.msan_extra_cppflags]
385 cflags += [args.msan_extra_cflags]
386 cxxflags += [args.msan_extra_cxxflags]
387 ldflags += [args.msan_extra_ldflags]
389 if args.asan:
392 if args.ubsan:
394 if not args.ubsan_pointer_overflow:
398 if args.stateful_fuzzing:
401 if args.fuzzing_mode:
404 if args.lib_fuzzing_engine == 'libregression.a':
446 def libfuzzer_parser(args): argument
457 parser = argparse.ArgumentParser(prog=args.pop(0), description=description)
477 args, extra = parser.parse_known_args(args)
478 args.extra = extra
480 if args.TARGET and args.TARGET not in TARGETS:
481 raise RuntimeError('{} is not a valid target'.format(args.TARGET))
483 return args
512 def libfuzzer_cmd(args): argument
514 args = libfuzzer_parser(args)
518 libfuzzer(args.TARGET, args.corpora, args.artifact, args.seed, args.extra)
522 def afl_parser(args): argument
531 parser = argparse.ArgumentParser(prog=args.pop(0), description=description)
551 args, extra = parser.parse_known_args(args)
552 args.extra = extra
554 if args.TARGET and args.TARGET not in TARGETS:
555 raise RuntimeError('{} is not a valid target'.format(args.TARGET))
557 if not args.corpora:
558 args.corpora = abs_join(CORPORA_DIR, args.TARGET)
559 if not args.output:
560 args.output = abs_join(CORPORA_DIR, '{}-afl'.format(args.TARGET))
562 return args
565 def afl(args): argument
567 args = afl_parser(args)
571 target = abs_join(FUZZ_DIR, args.TARGET)
573 corpora = create(args.corpora)
574 output = create(args.output)
576 cmd = [args.afl_fuzz, '-i', corpora, '-o', output] + args.extra
583 def regression(args): argument
591 args = targets_parser(args, description)
595 for target in args.TARGET:
604 def gen_parser(args): argument
614 parser = argparse.ArgumentParser(prog=args.pop(0), description=description)
647 args, extra = parser.parse_known_args(args)
648 args.extra = extra
650 if args.TARGET and args.TARGET not in TARGETS:
651 raise RuntimeError('{} is not a valid target'.format(args.TARGET))
653 if not args.seed:
654 args.seed = abs_join(CORPORA_DIR, '{}-seed'.format(args.TARGET))
656 if not os.path.isfile(args.decodecorpus):
658 format(args.decodecorpus, abs_join(FUZZ_DIR, '..')))
660 return args
663 def gen(args): argument
665 args = gen_parser(args)
670 seed = create(args.seed)
674 args.decodecorpus,
675 '-n{}'.format(args.number),
680 if 'block_' in args.TARGET:
683 '--max-block-size-log={}'.format(args.max_size_log)
686 cmd += ['--max-content-size-log={}'.format(args.max_size_log)]
691 if '_round_trip' in args.TARGET:
694 elif '_decompress' in args.TARGET:
702 rng_seed = os.urandom(args.fuzz_rng_seed_size)
714 def minimize(args): argument
720 args = targets_parser(args, description)
725 for target in args.TARGET:
729 extra_args = [corpus, "-merge=1"] + args.extra
740 def zip_cmd(args): argument
745 args = targets_parser(args, description)
750 for target in args.TARGET:
760 def list_cmd(args): argument
764 def short_help(args): argument
765 name = args[0]
769 def help(args): argument
770 short_help(args)
787 args = sys.argv
788 if len(args) < 2:
789 help(args)
791 if args[1] == '-h' or args[1] == '--help' or args[1] == '-H':
792 help(args)
794 command = args.pop(1)
795 args[0] = "{} {}".format(args[0], command)
797 return build(args)
799 return libfuzzer_cmd(args)
801 return regression(args)
803 return afl(args)
805 return gen(args)
807 return minimize(args)
809 return zip_cmd(args)
811 return list_cmd(args)
812 short_help(args)