]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
meson: Use dicts for fuzzer definitions 26203/head
authorJan Janssen <medhefgo@web.de>
Wed, 25 Jan 2023 16:39:12 +0000 (17:39 +0100)
committerJan Janssen <medhefgo@web.de>
Tue, 21 Feb 2023 14:10:26 +0000 (15:10 +0100)
12 files changed:
meson.build
src/boot/efi/meson.build
src/core/meson.build
src/journal-remote/meson.build
src/journal/meson.build
src/libsystemd-network/meson.build
src/network/meson.build
src/nspawn/meson.build
src/resolve/meson.build
src/systemctl/meson.build
src/udev/meson.build
src/xdg-autostart-generator/meson.build

index 32fc9e966d6469e0f95347647e30735af8fa64bd..347e09b0e0b871a668f25fffc49e41533d7a7afb 100644 (file)
@@ -4181,17 +4181,15 @@ endif
 ############################################################
 
 foreach fuzzer : simple_fuzzers
-        fuzzers += [ [[fuzzer]] ]
+        fuzzers += { 'sources' : [fuzzer] }
 endforeach
 
 fuzzer_exes = []
 
-foreach tuple : fuzzers
-        sources = tuple[0]
-        link_with = tuple.length() > 1 and tuple[1].length() > 0 ? tuple[1] : [libshared]
-        dependencies = tuple.length() > 2 ? tuple[2] : []
-        incs = tuple.length() > 3 and tuple[3].length() > 0 ? tuple[3] : includes
-        defs = tuple.length() > 4 ? tuple[4] : []
+foreach fuzzer : fuzzers
+        sources = fuzzer.get('sources')
+        base = fuzzer.get('base', {})
+        dependencies = [base.get('dependencies', []), fuzzer.get('dependencies', [])]
         link_args = []
 
         if want_ossfuzz
@@ -4203,7 +4201,7 @@ foreach tuple : fuzzers
                         link_args += ['-fsanitize=fuzzer']
                 endif
         else
-                sources += 'src/fuzz/fuzz-main.c'
+                sources += files('src/fuzz/fuzz-main.c')
         endif
         sources += fuzz_generated_directives
 
@@ -4213,11 +4211,14 @@ foreach tuple : fuzzers
         exe = executable(
                 name,
                 sources,
-                include_directories : [incs, include_directories('src/fuzz')],
-                link_with : link_with,
-                dependencies : [dependencies,
-                                versiondep],
-                c_args : defs + test_cflags,
+                include_directories : [
+                        base.get('includes', []),
+                        fuzzer.get('includes', includes),
+                        include_directories('src/fuzz'),
+                ],
+                link_with : [base.get('link_with', []), fuzzer.get('link_with', libshared)],
+                dependencies : [dependencies, versiondep],
+                c_args : [test_cflags, fuzzer.get('c_args', [])],
                 link_args: link_args,
                 install : false,
                 build_by_default : fuzzer_build)
index 80061a559bb1d8dfec875428b0cf838f8432392e..8c509458a0700be9db062fb8d3fe420bc1947f19 100644 (file)
@@ -411,9 +411,25 @@ if efi_arch[1] in ['ia32', 'x86_64', 'arm', 'aarch64']
                 },
         ]
         fuzzers += [
-                [files('fuzz-bcd.c', 'bcd.c', 'efi-string.c')],
-                [files('fuzz-efi-string.c', 'efi-string.c')],
-                [files('fuzz-efi-printf.c', 'efi-string.c')],
+                {
+                        'sources' : files(
+                                'fuzz-bcd.c',
+                                'bcd.c',
+                                'efi-string.c'
+                        ),
+                },
+                {
+                        'sources' : files(
+                                'fuzz-efi-string.c',
+                                'efi-string.c'
+                        ),
+                },
+                {
+                        'sources' : files(
+                                'fuzz-efi-printf.c',
+                                'efi-string.c'
+                        ),
+                },
         ]
 endif
 
index 65b34bb467b4b1c7417d53adf14f9a7f0c083639..15df4485cae9c6fd311ed0049eab70cf089dc466 100644 (file)
@@ -185,8 +185,12 @@ test_core_base = {
 }
 
 fuzzers += [
-        [files('fuzz-unit-file.c'),
-         [libcore,
-          libshared],
-         [libmount]],
+        {
+                'sources' : files('fuzz-unit-file.c'),
+                'link_with' : [
+                        libcore,
+                        libshared
+                ],
+                'dependencies' : libmount,
+        },
 ]
index ac375741b0ca984ce75150a477565e1baf07e3c3..74f01b04764ebb7ecfbd02effc13dcaf3d2e93d1 100644 (file)
@@ -69,9 +69,12 @@ endif
 ############################################################
 
 fuzzers += [
-        [files('fuzz-journal-remote.c'),
-         [libsystemd_journal_remote,
-          libshared],
-         [],
-         [journal_includes]],
+        {
+                'sources' : files('fuzz-journal-remote.c'),
+                'link_with' : [
+                        libshared,
+                        libsystemd_journal_remote,
+                ],
+                'includes' : journal_includes,
+        },
 ]
index 8547a902228dc6c55a33490fd49f9c05a8fdeb4e..c9ff54c9917fdbb3e57350a0be85def8f9bd62bf 100644 (file)
@@ -111,40 +111,52 @@ tests += [
         },
 ]
 
-fuzzers += [
-        [files('fuzz-journald-audit.c',
-               'fuzz-journald.c'),
-         [libjournal_core,
-          libshared],
-         [libselinux]],
-
-        [files('fuzz-journald-kmsg.c',
-               'fuzz-journald.c'),
-         [libjournal_core,
-          libshared],
-         [libselinux]],
-
-        [files('fuzz-journald-native.c',
-               'fuzz-journald.c'),
-         [libjournal_core,
-          libshared],
-         [libselinux]],
-
-        [files('fuzz-journald-native-fd.c',
-               'fuzz-journald.c'),
-         [libjournal_core,
-          libshared],
-         [libselinux]],
-
-        [files('fuzz-journald-stream.c',
-               'fuzz-journald.c'),
-         [libjournal_core,
-          libshared],
-         [libselinux]],
+fuzzer_journald_base = {
+        'link_with' : [libjournal_core, libshared],
+        'dependencies' : [libselinux],
+}
 
-        [files('fuzz-journald-syslog.c',
-               'fuzz-journald.c'),
-         [libjournal_core,
-          libshared],
-         [libselinux]],
+fuzzers += [
+        {
+                'sources' : files(
+                        'fuzz-journald-audit.c',
+                        'fuzz-journald.c',
+                ),
+                'base' : fuzzer_journald_base,
+        },
+        {
+                'sources' : files(
+                        'fuzz-journald-kmsg.c',
+                        'fuzz-journald.c',
+                ),
+                'base' : fuzzer_journald_base,
+        },
+        {
+                'sources' : files(
+                        'fuzz-journald-native.c',
+                        'fuzz-journald.c',
+                ),
+                'base' : fuzzer_journald_base,
+        },
+        {
+                'sources' : files(
+                        'fuzz-journald-native-fd.c',
+                        'fuzz-journald.c',
+                ),
+                'base' : fuzzer_journald_base,
+        },
+        {
+                'sources' : files(
+                        'fuzz-journald-stream.c',
+                        'fuzz-journald.c',
+                ),
+                'base' : fuzzer_journald_base,
+        },
+        {
+                'sources' : files(
+                        'fuzz-journald-syslog.c',
+                        'fuzz-journald.c',
+                ),
+                'base' : fuzzer_journald_base,
+        },
 ]
index 21dc85d8de0caa615b5367f053ed048c77256c18..85d4afeb05826b2c96e884f9dad31c0805332095 100644 (file)
@@ -91,28 +91,33 @@ tests += [
         },
 ]
 
-fuzzers += [
-        [files('fuzz-dhcp-client.c'),
-         [libshared,
-          libsystemd_network]],
-
-        [files('fuzz-dhcp6-client.c'),
-         [libshared,
-          libsystemd_network]],
-
-        [files('fuzz-dhcp-server.c'),
-         [libsystemd_network,
-          libshared]],
-
-        [files('fuzz-dhcp-server-relay.c'),
-         [libsystemd_network,
-          libshared]],
-
-        [files('fuzz-lldp-rx.c'),
-         [libshared,
-          libsystemd_network]],
+fuzzer_network_base = {
+        'link_with' : [libshared, libsystemd_network],
+}
 
-        [files('fuzz-ndisc-rs.c'),
-         [libshared,
-          libsystemd_network]],
+fuzzers += [
+        {
+                'sources' : files('fuzz-dhcp-client.c'),
+                'base' : fuzzer_network_base,
+        },
+        {
+                'sources' : files('fuzz-dhcp6-client.c'),
+                'base' : fuzzer_network_base,
+        },
+        {
+                'sources' : files('fuzz-dhcp-server.c'),
+                'base' : fuzzer_network_base,
+        },
+        {
+                'sources' : files('fuzz-dhcp-server-relay.c'),
+                'base' : fuzzer_network_base,
+        },
+        {
+                'sources' : files('fuzz-lldp-rx.c'),
+                'base' : fuzzer_network_base,
+        },
+        {
+                'sources' : files('fuzz-ndisc-rs.c'),
+                'base' : fuzzer_network_base,
+        },
 ]
index 0b68b74b4598c532dbfa53a6fdabb60ddc5d57c3..91572ba132c0cd7df3f113285f039518dd6295ad 100644 (file)
@@ -171,20 +171,21 @@ if conf.get('ENABLE_NETWORKD') == 1
         endif
 endif
 
+fuzzer_network_base = {
+        'link_with' : [libnetworkd_core, libsystemd_network, networkd_link_with],
+        'dependencies' : threads,
+        'includes' : network_includes,
+}
+
 fuzzers += [
-        [files('fuzz-netdev-parser.c'),
-         [libnetworkd_core,
-          libsystemd_network,
-          networkd_link_with],
-         [threads],
-         network_includes],
-
-        [files('fuzz-network-parser.c'),
-         [libnetworkd_core,
-          libsystemd_network,
-          networkd_link_with],
-         [threads],
-         network_includes],
+        {
+                'sources' : files('fuzz-netdev-parser.c'),
+                'base' : fuzzer_network_base,
+        },
+        {
+                'sources' : files('fuzz-network-parser.c'),
+                'base' : fuzzer_network_base,
+        },
 ]
 
 test_network_base = {
index 9d6bc21bbf181eaab0ad380bf4f847dc72523e70..43e3e188b2f919ae7e23f2f25125f5ad94e04f60 100644 (file)
@@ -66,14 +66,18 @@ tests += [
         },
 ]
 
-fuzzers += [
-        [files('fuzz-nspawn-settings.c'),
-         [libshared,
-          libnspawn_core],
-         [libseccomp]],
+fuzzer_nspawn_base = {
+        'link_with' : [libshared, libnspawn_core],
+        'dependencies' : libseccomp
+}
 
-        [files('fuzz-nspawn-oci.c'),
-         [libshared,
-          libnspawn_core],
-         [libseccomp]],
+fuzzers += [
+        {
+                'sources' : files('fuzz-nspawn-settings.c'),
+                'base' : fuzzer_nspawn_base,
+        },
+        {
+                'sources' : files('fuzz-nspawn-oci.c'),
+                'base' : fuzzer_nspawn_base,
+        },
 ]
index b5083685c452c738dd008caad546f690bee69a91..8166118c74ff2f16863ac43d33efe4fc9c3734bf 100644 (file)
@@ -187,23 +187,27 @@ tests += [
         },
 ]
 
+fuzzer_resolve_base = {
+        'link_with' : [libsystemd_resolve_core, libshared],
+        'dependencies' : [lib_openssl_or_gcrypt, libm],
+}
+
 fuzzers += [
-        [files('fuzz-dns-packet.c'),
-         [libsystemd_resolve_core,
-          libshared],
-         [lib_openssl_or_gcrypt,
-          libm]],
-        [files('fuzz-etc-hosts.c',
-          'resolved-etc-hosts.c'),
-         [libsystemd_resolve_core,
-          libshared],
-         [lib_openssl_or_gcrypt,
-          libm]],
-        [files('fuzz-resource-record.c'),
-         [libsystemd_resolve_core,
-          libshared],
-         [lib_openssl_or_gcrypt,
-          libm]],
+        {
+                'sources' : files('fuzz-dns-packet.c'),
+                'base' : fuzzer_resolve_base,
+        },
+        {
+                'sources' : files(
+                        'fuzz-etc-hosts.c',
+                        'resolved-etc-hosts.c',
+                ),
+                'base' : fuzzer_resolve_base,
+        },
+        {
+                'sources' : files('fuzz-resource-record.c'),
+                'base' : fuzzer_resolve_base,
+        },
 ]
 
 systemd_resolved_sources += files('resolved.c')
index 30d0f5767543f18bcc9f199bd460164b78b0f6b1..07049ca920fcba78140141d1cece730f2d6da6c9 100644 (file)
@@ -48,8 +48,12 @@ else
 endif
 
 fuzzers += [
-        [files('fuzz-systemctl-parse-argv.c') +
-         systemctl_sources,
-         systemctl_link_with,
-         [], [], ['-DFUZZ_SYSTEMCTL_PARSE_ARGV']]
+        {
+                'sources' : [
+                        files('fuzz-systemctl-parse-argv.c'),
+                        systemctl_sources,
+                ],
+                'link_with' : systemctl_link_with,
+                'c_args' : '-DFUZZ_SYSTEMCTL_PARSE_ARGV',
+        },
 ]
index ab0489c6dde06a3b8de6f337ce6d8f68dc0c5c11..3f4ab00ac9506df3cb84d9e45576318a367f7e9e 100644 (file)
@@ -164,22 +164,27 @@ simple_fuzzers += files(
         'fuzz-udev-rule-parse-value.c',
 )
 
+fuzzer_udev_base = {
+        'link_with' : [libudevd_core, libshared],
+        'dependencies' : [threads, libacl],
+}
+
 fuzzers += [
-        [files('net/fuzz-link-parser.c'),
-         [libudevd_core,
-          libshared],
-         [threads,
-          libacl],
-         udev_includes],
-
-        [files('fuzz-udev-rules.c'),
-         [libudevd_core,
-          libshared],
-         [threads,
-          libacl]],
-
-        [files('fido_id/fuzz-fido-id-desc.c',
-               'fido_id/fido_id_desc.c')],
+        {
+                'sources' : files('net/fuzz-link-parser.c'),
+                'includes' : udev_includes,
+                'base' : fuzzer_udev_base,
+        },
+        {
+                'sources' : files('fuzz-udev-rules.c'),
+                'base' : fuzzer_udev_base,
+        },
+        {
+                'sources' : files(
+                        'fido_id/fuzz-fido-id-desc.c',
+                        'fido_id/fido_id_desc.c',
+                ),
+        },
 ]
 
 test_libudev_base = {
index 7f7d18bba6636f08c2f3f0839aebb6241db4e6db..c7e566088141242780f9fe020d7c75ecf7cd142a 100644 (file)
@@ -15,6 +15,10 @@ tests += [
 ]
 
 fuzzers += [
-        [files('fuzz-xdg-desktop.c',
-               'xdg-autostart-service.c')],
+        {
+                'sources' : files(
+                        'fuzz-xdg-desktop.c',
+                        'xdg-autostart-service.c',
+                ),
+        },
 ]