xref: /freebsd/contrib/pkgconf/fuzzer/meson.build (revision 592efe252472a3385acf36b1f49ecf710a7f3d9c)
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