glib/fuzzing/meson.build

52 lines
1.5 KiB
Meson
Raw Normal View History

2018-10-11 02:02:03 +02:00
fuzz_targets = [
'fuzz_bookmark',
'fuzz_canonicalize_filename',
'fuzz_date_parse',
'fuzz_date_time_new_from_iso8601',
2018-10-11 02:02:03 +02:00
'fuzz_dbus_message',
'fuzz_inet_address_mask_new_from_string',
'fuzz_inet_address_new_from_string',
'fuzz_inet_socket_address_new_from_string',
2018-10-11 02:02:03 +02:00
'fuzz_key',
'fuzz_network_address_parse',
'fuzz_network_address_parse_uri',
'fuzz_paths',
'fuzz_resolver',
'fuzz_uri_escape',
'fuzz_uri_parse',
'fuzz_uri_parse_params',
2018-10-11 02:02:03 +02:00
'fuzz_variant_binary',
'fuzz_variant_text',
]
deps = [libgmodule_dep, libgio_dep, libglib_dep, libgobject_dep]
extra_sources = []
extra_c_args = cc.get_supported_arguments('-Werror=unused-function')
# Links in a static library provided by oss-fuzz, else a standalone driver.
# https://google.github.io/oss-fuzz/getting-started/new-project-guide/#buildsh-script-environment
2019-03-13 12:47:36 +01:00
fuzzing_engine = cxx.find_library('FuzzingEngine', required : get_option('oss_fuzz'))
2018-10-11 02:02:03 +02:00
if fuzzing_engine.found()
deps += fuzzing_engine
else
extra_sources += 'driver.c'
endif
foreach target_name : fuzz_targets
exe = executable(target_name, [extra_sources, target_name + '.c'],
c_args : extra_c_args,
dependencies : deps,
)
# If the FuzzingEngine isnt available, build some unit tests to check that
# the fuzzing files do basically work. This doesnt do any actual fuzzing though.
# Pass in the README as an arbitrary fuzzing input, just so we have something.
if not fuzzing_engine.found()
test(target_name, exe,
args : files('README.md'),
suite : 'fuzzing',
)
endif
2018-10-11 02:02:03 +02:00
endforeach