summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fuzz/atom/parser/meson.build38
-rw-r--r--fuzz/atom/vercmp/meson.build38
-rw-r--r--fuzz/meson.build57
3 files changed, 62 insertions, 71 deletions
diff --git a/fuzz/atom/parser/meson.build b/fuzz/atom/parser/meson.build
index 88452f5..025c6fb 100644
--- a/fuzz/atom/parser/meson.build
+++ b/fuzz/atom/parser/meson.build
@@ -1,7 +1,31 @@
-fuzzers += {
- 'atom_parser': {
- 'gencorpus': meson.current_source_dir() / 'gencorpus.rs',
- 'fuzzer': meson.current_source_dir() / 'fuzz.rs',
- 'deps': [mon],
- },
-}
+gencorpus = executable(
+ 'gencorpus',
+ 'gencorpus.rs',
+ dependencies: [mon],
+ link_with: [gentoo_utils],
+)
+
+corpus = custom_target(
+ 'corpus',
+ output: 'corpus',
+ command: [gencorpus, 'corpus'],
+)
+
+fuzz_rs = static_library(
+ 'fuzzer',
+ 'fuzz.rs',
+ rust_abi: 'c',
+ rust_args: [
+ '-Cpasses=sancov-module',
+ '-Cllvm-args=-sanitizer-coverage-level=3',
+ '-Cllvm-args=-sanitizer-coverage-inline-8bit-counters',
+ ],
+ dependencies: [mon],
+ link_with: [gentoo_utils],
+)
+
+fuzz = executable(
+ 'fuzzer',
+ link_args: ['-fsanitize=fuzzer'],
+ link_with: [fuzz_rs],
+)
diff --git a/fuzz/atom/vercmp/meson.build b/fuzz/atom/vercmp/meson.build
index 5634061..025c6fb 100644
--- a/fuzz/atom/vercmp/meson.build
+++ b/fuzz/atom/vercmp/meson.build
@@ -1,7 +1,31 @@
-fuzzers += {
- 'atom_vercmp': {
- 'gencorpus': meson.current_source_dir() / 'gencorpus.rs',
- 'fuzzer': meson.current_source_dir() / 'fuzz.rs',
- 'deps': [mon],
- },
-}
+gencorpus = executable(
+ 'gencorpus',
+ 'gencorpus.rs',
+ dependencies: [mon],
+ link_with: [gentoo_utils],
+)
+
+corpus = custom_target(
+ 'corpus',
+ output: 'corpus',
+ command: [gencorpus, 'corpus'],
+)
+
+fuzz_rs = static_library(
+ 'fuzzer',
+ 'fuzz.rs',
+ rust_abi: 'c',
+ rust_args: [
+ '-Cpasses=sancov-module',
+ '-Cllvm-args=-sanitizer-coverage-level=3',
+ '-Cllvm-args=-sanitizer-coverage-inline-8bit-counters',
+ ],
+ dependencies: [mon],
+ link_with: [gentoo_utils],
+)
+
+fuzz = executable(
+ 'fuzzer',
+ link_args: ['-fsanitize=fuzzer'],
+ link_with: [fuzz_rs],
+)
diff --git a/fuzz/meson.build b/fuzz/meson.build
index eb485db..c613cd0 100644
--- a/fuzz/meson.build
+++ b/fuzz/meson.build
@@ -1,60 +1,3 @@
cbindgen = find_program('cbindgen')
-fuzzers = {}
-
subdir('atom')
-
-foreach fuzzer, meta : fuzzers
- gencorpus_rs = meta['gencorpus']
- fuzz_rs = meta['fuzzer']
- deps = meta['deps']
-
- gencorpus = executable(
- fuzzer + '_' + 'gencorpus',
- gencorpus_rs,
- dependencies: [mon],
- link_with: [gentoo_utils],
- )
-
- corpus_directory = fuzzer + '_' + 'corpus'
-
- corpus = custom_target(
- f'@fuzzer@_corpus',
- output: f'@fuzzer@_corpus',
- command: [gencorpus, corpus_directory],
- )
-
- fuzz_h = custom_target(
- f'@fuzzer@_fuzz.h',
- input: fuzz_rs,
- output: f'@fuzzer@_fuzz.h',
- command: [cbindgen, '@INPUT@', '-o', '@OUTPUT'],
- )
-
- fuzz_rs = static_library(
- f'@fuzzer@.rs',
- fuzz_rs,
- rust_abi: 'c',
- rust_args: [
- '-Cpasses=sancov-module',
- '-Cllvm-args=-sanitizer-coverage-level=3',
- '-Cllvm-args=-sanitizer-coverage-inline-8bit-counters',
- ],
- dependencies: deps,
- link_with: [gentoo_utils],
- )
-
- fuzz = executable(
- f'@fuzzer@_fuzzer',
- link_args: ['-fsanitize=fuzzer'],
- link_with: [fuzz_rs],
- )
-
- test(
- fuzzer + '_' + 'fuzz',
- fuzz,
- args: [corpus_directory],
- depends: [corpus],
- timeout: 0,
- )
-endforeach