]> git.ipfire.org Git - thirdparty/git.git/commitdiff
meson: wire up fuzzers
authorPatrick Steinhardt <ps@pks.im>
Wed, 22 Jan 2025 12:05:50 +0000 (13:05 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 22 Jan 2025 20:37:33 +0000 (12:37 -0800)
Meson does not yet know to build our fuzzers. Introduce a new build
option "fuzzers" and wire up the fuzzers in case it is enabled. Adapt
our CI jobs so that they build the fuzzers by default.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
ci/run-build-and-tests.sh
meson.build
meson_options.txt
oss-fuzz/meson.build [new file with mode: 0644]

index 76667a1277720d74e09e8da227b5e0832003e0e2..6c828c3b755153dab179f73346e7124bda49c90e 100755 (executable)
@@ -53,7 +53,8 @@ case "$jobname" in
 *-meson)
        group "Configure" meson setup build . \
                --warnlevel 2 --werror \
-               --wrap-mode nofallback
+               --wrap-mode nofallback \
+               -Dfuzzers=true
        group "Build" meson compile -C build --
        if test -n "$run_tests"
        then
index a59072edf5d176f9e2dea48ee04696731311eee1..052bd80ac4cc0c40be15aa39fb3f2143e3a499db 100644 (file)
@@ -1906,6 +1906,10 @@ if get_option('tests')
   subdir('t')
 endif
 
+if get_option('fuzzers')
+  subdir('oss-fuzz')
+endif
+
 subdir('bin-wrappers')
 if get_option('docs') != []
   subdir('Documentation')
index 89b01bad042b533b23e0e2b4b780ce152ee688c8..34ba679cf931b67a794a9bb7e765bfb22106381e 100644 (file)
@@ -95,3 +95,5 @@ option('tests', type: 'boolean', value: true,
   description: 'Enable building tests. This requires Perl, but is separate from the "perl" option such that you can build tests without Perl features enabled.')
 option('test_output_directory', type: 'string',
   description: 'Path to the directory used to store test outputs')
+option('fuzzers', type: 'boolean', value: false,
+  description: 'Enable building fuzzers.')
diff --git a/oss-fuzz/meson.build b/oss-fuzz/meson.build
new file mode 100644 (file)
index 0000000..ed79665
--- /dev/null
@@ -0,0 +1,20 @@
+fuzz_programs = [
+  'fuzz-commit-graph.c',
+  'fuzz-config.c',
+  'fuzz-credential-from-url-gently.c',
+  'fuzz-date.c',
+  'fuzz-pack-headers.c',
+  'fuzz-pack-idx.c',
+  'fuzz-parse-attr-line.c',
+  'fuzz-url-decode-mem.c',
+]
+
+foreach fuzz_program : fuzz_programs
+  executable(fs.stem(fuzz_program),
+    sources: [
+      'dummy-cmd-main.c',
+      fuzz_program,
+    ],
+    dependencies: [libgit, common_main],
+  )
+endforeach