1*592efe25SPierre Proncheryfuzzer_link_args = [ 2*592efe25SPierre Pronchery '-fsanitize=fuzzer', 3*592efe25SPierre Pronchery '-Wl,--wrap=malloc', 4*592efe25SPierre Pronchery '-Wl,--wrap=calloc', 5*592efe25SPierre Pronchery '-Wl,--wrap=realloc', 6*592efe25SPierre Pronchery '-Wl,--wrap=reallocarray', 7*592efe25SPierre Pronchery '-Wl,--wrap=strdup', 8*592efe25SPierre Pronchery '-Wl,--wrap=strndup', 9*592efe25SPierre Pronchery] 10*592efe25SPierre Pronchery 11*592efe25SPierre Proncheryparser_fuzzer_exe = executable( 12*592efe25SPierre Pronchery 'parser-fuzzer', 13*592efe25SPierre Pronchery 'parser-fuzzer.c', 14*592efe25SPierre Pronchery 'alloc-inject.c', 15*592efe25SPierre Pronchery dependencies: dep_libpkgconf, 16*592efe25SPierre Pronchery include_directories: include_directories('..'), 17*592efe25SPierre Pronchery install: false, 18*592efe25SPierre Pronchery c_args: ['-fsanitize=fuzzer'], 19*592efe25SPierre Pronchery link_args: fuzzer_link_args, 20*592efe25SPierre Pronchery) 21*592efe25SPierre Pronchery 22*592efe25SPierre Proncherysolver_fuzzer_exe = executable( 23*592efe25SPierre Pronchery 'solver-fuzzer', 24*592efe25SPierre Pronchery 'solver-fuzzer.c', 25*592efe25SPierre Pronchery 'alloc-inject.c', 26*592efe25SPierre Pronchery dependencies: dep_libpkgconf, 27*592efe25SPierre Pronchery include_directories: include_directories('..'), 28*592efe25SPierre Pronchery install: false, 29*592efe25SPierre Pronchery c_args: ['-fsanitize=fuzzer'], 30*592efe25SPierre Pronchery link_args: fuzzer_link_args, 31*592efe25SPierre Pronchery) 32*592efe25SPierre Pronchery 33*592efe25SPierre Proncheryspdxtool_fuzzer_exe = executable( 34*592efe25SPierre Pronchery 'spdxtool-fuzzer', 35*592efe25SPierre Pronchery 'spdxtool-fuzzer.c', 36*592efe25SPierre Pronchery 'alloc-inject.c', 37*592efe25SPierre Pronchery '../cli/spdxtool/core.c', 38*592efe25SPierre Pronchery '../cli/spdxtool/software.c', 39*592efe25SPierre Pronchery '../cli/spdxtool/serialize.c', 40*592efe25SPierre Pronchery '../cli/spdxtool/simplelicensing.c', 41*592efe25SPierre Pronchery '../cli/spdxtool/util.c', 42*592efe25SPierre Pronchery '../cli/spdxtool/generate.c', 43*592efe25SPierre Pronchery dependencies: dep_libpkgconf, 44*592efe25SPierre Pronchery include_directories: include_directories('..', '../cli/spdxtool'), 45*592efe25SPierre Pronchery install: false, 46*592efe25SPierre Pronchery c_args: ['-fsanitize=fuzzer'], 47*592efe25SPierre Pronchery link_args: fuzzer_link_args, 48*592efe25SPierre Pronchery) 49*592efe25SPierre Pronchery 50*592efe25SPierre Proncheryfuzz_root = join_paths(meson.project_build_root(), 'fuzz') 51*592efe25SPierre Proncherycorpus_dir = join_paths(fuzz_root, 'corpus') 52*592efe25SPierre Proncherysolver_corpus_dir = join_paths(fuzz_root, 'solver-corpus') 53*592efe25SPierre Proncheryspdxtool_corpus_dir = join_paths(fuzz_root, 'spdxtool-corpus') 54*592efe25SPierre Proncheryseed_dir = join_paths(meson.project_source_root(), 'tests', 'lib1') 55*592efe25SPierre Proncherysolver_seed_dir = join_paths(meson.project_source_root(), 'fuzzer', 'solver-corpus') 56*592efe25SPierre Pronchery 57*592efe25SPierre Proncheryrun_target( 58*592efe25SPierre Pronchery 'fuzz-prepare', 59*592efe25SPierre Pronchery command: ['mkdir', '-p', corpus_dir] 60*592efe25SPierre Pronchery) 61*592efe25SPierre Pronchery 62*592efe25SPierre Proncheryrun_target( 63*592efe25SPierre Pronchery 'fuzz-parser', 64*592efe25SPierre Pronchery command: [parser_fuzzer_exe, corpus_dir, seed_dir] 65*592efe25SPierre Pronchery) 66*592efe25SPierre Pronchery 67*592efe25SPierre Proncheryrun_target( 68*592efe25SPierre Pronchery 'fuzz-solver', 69*592efe25SPierre Pronchery command: [solver_fuzzer_exe, solver_corpus_dir, solver_seed_dir] 70*592efe25SPierre Pronchery) 71*592efe25SPierre Pronchery 72*592efe25SPierre Proncheryrun_target( 73*592efe25SPierre Pronchery 'fuzz-spdxtool', 74*592efe25SPierre Pronchery command: [spdxtool_fuzzer_exe, spdxtool_corpus_dir, solver_seed_dir] 75*592efe25SPierre Pronchery) 76