summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--catalog/meson.build1
-rw-r--r--meson.build99
-rw-r--r--meson_options.txt7
-rw-r--r--src/coredump/meson.build9
-rw-r--r--src/import/meson.build9
-rw-r--r--src/libsystemd/meson.build92
-rw-r--r--src/locale/meson.build14
-rw-r--r--src/machine/meson.build8
-rw-r--r--src/network/meson.build28
-rw-r--r--src/nspawn/meson.build9
-rw-r--r--src/resolve/meson.build34
-rw-r--r--src/shared/meson.build4
-rw-r--r--src/test/meson.build699
-rw-r--r--src/test/test-hashmap-ordered.awk11
-rw-r--r--src/udev/meson.build3
15 files changed, 1010 insertions, 17 deletions
diff --git a/catalog/meson.build b/catalog/meson.build
index b50792ee2e..0ac48f69c3 100644
--- a/catalog/meson.build
+++ b/catalog/meson.build
@@ -16,6 +16,7 @@ in_files = '''
support_url = get_option('support-url')
support_sed = 's~%SUPPORT_URL%~@0@~'.format(support_url)
+build_catalog_dir = meson.current_build_dir()
foreach file : in_files
custom_target(
diff --git a/meson.build b/meson.build
index 20c6cd1a8b..f7bcf48b9e 100644
--- a/meson.build
+++ b/meson.build
@@ -789,6 +789,37 @@ if libacl.found()
m4_defines += ['-DHAVE_ACL']
endif
+want_glib = get_option('glib')
+if want_glib != 'no'
+ libglib = dependency('glib-2.0',
+ version : '>= 2.22.0',
+ required : want_glib == 'yes')
+ libgobject = dependency('gobject-2.0',
+ version : '>= 2.22.0',
+ required : want_glib == 'yes')
+ libgio = dependency('gio-2.0',
+ required : want_glib == 'yes')
+ if libglib.found() and libgobject.found() and libgio.found()
+ conf.set('HAVE_GLIB', 1)
+ endif
+else
+ libglib = []
+ libgobject = []
+ libgio = []
+endif
+
+want_dbus = get_option('dbus')
+if want_dbus != 'no'
+ libdbus = dependency('dbus-1',
+ version : '>= 1.3.2',
+ required : want_dbus == 'yes')
+ if libdbus.found()
+ conf.set('HAVE_DBUS', 1)
+ endif
+else
+ libdbus = []
+endif
+
want_libgcrypt = get_option('libgcrypt')
if want_libgcrypt != 'no'
libgcrypt = cc.find_library('gcrypt', required : want_libgcrypt == 'yes')
@@ -860,6 +891,9 @@ foreach pair : [['utmp', 'HAVE_UTMP'],
endif
endforeach
+want_tests = get_option('tests')
+tests = []
+
#####################################################################
if get_option('efi')
@@ -914,21 +948,8 @@ subdir('src/systemd')
subdir('src/basic')
subdir('src/libsystemd')
subdir('src/libsystemd-network')
-subdir('src/analyze')
-subdir('src/coredump')
-subdir('src/hostname')
-subdir('src/import')
subdir('src/journal')
-subdir('src/journal-remote')
-subdir('src/kernel-install')
-subdir('src/locale')
subdir('src/login')
-subdir('src/machine')
-subdir('src/nspawn')
-subdir('src/resolve')
-subdir('src/timedate')
-subdir('src/timesync')
-subdir('src/vconsole')
libjournal_core = static_library(
'journal-core',
@@ -993,6 +1014,22 @@ subdir('src/core')
subdir('src/udev')
subdir('src/network')
+subdir('src/analyze')
+subdir('src/journal-remote')
+subdir('src/coredump')
+subdir('src/hostname')
+subdir('src/import')
+subdir('src/kernel-install')
+subdir('src/locale')
+subdir('src/machine')
+subdir('src/nspawn')
+subdir('src/resolve')
+subdir('src/timedate')
+subdir('src/timesync')
+subdir('src/vconsole')
+
+subdir('src/test')
+
executable('systemd',
systemd_sources,
include_directories : includes,
@@ -1819,8 +1856,40 @@ executable('networkctl',
install : true,
install_dir : rootbindir)
-executable('test-sizeof', 'src/test/test-sizeof.c',
- include_directories : includes)
+############################################################
+
+foreach tuple : tests
+ sources = tuple[0]
+ link_with = tuple[1].length() > 0 ? tuple[1] : [libshared]
+ dependencies = tuple[2]
+ condition = tuple.length() >= 4 ? tuple[3] : ''
+ type = tuple.length() >= 5 ? tuple[4] : ''
+ defs = tuple.length() >= 6 ? tuple[5] : []
+ incs = tuple.length() >= 7 ? tuple[6] : includes
+
+ name = sources[0].split('/')[-1].split('.')[0]
+
+ if condition == '' or conf.get(condition, 0) == 1
+ exe = executable(
+ name,
+ sources,
+ include_directories : incs,
+ link_with : link_with,
+ dependencies : dependencies,
+ c_args : defs)
+ if type == 'manual'
+ message('@0@ is a manual test'.format(name))
+ elif type == 'unsafe' and want_tests != 'unsafe'
+ message('@0@ is an unsafe test'.format(name))
+ else
+ test(name, exe, env : test_env)
+ endif
+ else
+ message('Not compiling @0@ because @1@ is not true'.format(name, condition))
+ endif
+endforeach
+
+############################################################
make_directive_index_py = find_program('tools/make-directive-index.py')
make_man_index_py = find_program('tools/make-man-index.py')
diff --git a/meson_options.txt b/meson_options.txt
index cc93310679..9295b9c27c 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -189,8 +189,15 @@ option('xz', type : 'combo', choices : ['auto', 'yes', 'no'],
description : 'xz compression support')
option('lz4', type : 'combo', choices : ['auto', 'yes', 'no'],
description : 'lz4 compression support')
+option('glib', type : 'combo', choices : ['auto', 'yes', 'no'],
+ description : 'libglib support (for tests only)')
+option('dbus', type : 'combo', choices : ['auto', 'yes', 'no'],
+ description : 'libdbus support (for tests only)')
option('bashcompletiondir', type : 'string',
description : 'directory for bash completion scripts ["no" disables]')
option('zshcompletiondir', type : 'string',
description : 'directory for zsh completion scripts ["no" disables]')
+
+option('tests', type : 'combo', choices : ['yes', 'unsafe'],
+ description : 'enable extra tests with =unsafe')
diff --git a/src/coredump/meson.build b/src/coredump/meson.build
index c7aa8be46c..f70a65f7a7 100644
--- a/src/coredump/meson.build
+++ b/src/coredump/meson.build
@@ -15,3 +15,12 @@ coredumpctl_sources = files('coredumpctl.c')
install_data('coredump.conf',
install_dir : pkgsysconfdir)
+
+tests += [
+ [['src/coredump/test-coredump-vacuum.c',
+ 'src/coredump/coredump-vacuum.c',
+ 'src/coredump/coredump-vacuum.h'],
+ [],
+ [],
+ 'ENABLE_COREDUMP', 'manual'],
+ ]
diff --git a/src/import/meson.build b/src/import/meson.build
index 0c9c4fb46c..173d6d6f3f 100644
--- a/src/import/meson.build
+++ b/src/import/meson.build
@@ -68,3 +68,12 @@ if conf.get('ENABLE_IMPORTD', 0) == 1
install_dir : rootlibexecdir)
# TODO: shouldn't this be in pkgdatadir?
endif
+
+tests += [
+ [['src/import/test-qcow2.c',
+ 'src/import/qcow2-util.c',
+ 'src/import/qcow2-util.h'],
+ [libshared],
+ [libz],
+ 'HAVE_ZLIB', 'manual'],
+ ]
diff --git a/src/libsystemd/meson.build b/src/libsystemd/meson.build
index e46b57ae68..9c6e494b93 100644
--- a/src/libsystemd/meson.build
+++ b/src/libsystemd/meson.build
@@ -96,3 +96,95 @@ libsystemd_pc = configure_file(
configuration : substs)
install_data(libsystemd_pc,
install_dir : pkgconfiglibdir)
+
+tests += [
+ [['src/libsystemd/sd-bus/test-bus-marshal.c'],
+ [],
+ [libglib,
+ libgobject,
+ libgio,
+ libdbus]],
+
+ [['src/libsystemd/sd-bus/test-bus-signature.c'],
+ [],
+ []],
+
+ [['src/libsystemd/sd-bus/test-bus-chat.c'],
+ [],
+ [threads]],
+
+ [['src/libsystemd/sd-bus/test-bus-cleanup.c'],
+ [],
+ [libseccomp]],
+
+ [['src/libsystemd/sd-bus/test-bus-track.c'],
+ [],
+ [libseccomp]],
+
+ [['src/libsystemd/sd-bus/test-bus-server.c'],
+ [],
+ [threads]],
+
+ [['src/libsystemd/sd-bus/test-bus-objects.c'],
+ [],
+ [threads]],
+
+ [['src/libsystemd/sd-bus/test-bus-error.c'],
+ [],
+ []],
+
+ [['src/libsystemd/sd-bus/test-bus-gvariant.c'],
+ [],
+ [libglib,
+ libgobject,
+ libgio]],
+
+ [['src/libsystemd/sd-bus/test-bus-creds.c'],
+ [],
+ []],
+
+ [['src/libsystemd/sd-bus/test-bus-match.c'],
+ [],
+ []],
+
+ [['src/libsystemd/sd-bus/test-bus-kernel.c'],
+ [],
+ []],
+
+ [['src/libsystemd/sd-bus/test-bus-kernel-bloom.c'],
+ [],
+ []],
+
+ [['src/libsystemd/sd-bus/test-bus-benchmark.c'],
+ [],
+ [threads]],
+
+ [['src/libsystemd/sd-bus/test-bus-zero-copy.c'],
+ [],
+ []],
+
+ [['src/libsystemd/sd-bus/test-bus-introspect.c'],
+ [],
+ []],
+
+ [['src/libsystemd/sd-event/test-event.c'],
+ [],
+ []],
+
+ [['src/libsystemd/sd-netlink/test-netlink.c'],
+ [],
+ []],
+
+ [['src/libsystemd/sd-netlink/test-local-addresses.c'],
+ [],
+ []],
+
+ [['src/libsystemd/sd-resolve/test-resolve.c'],
+ [],
+ [threads]],
+
+ [['src/libsystemd/sd-login/test-login.c'],
+ [],
+ [],
+ '', 'manual'],
+ ]
diff --git a/src/locale/meson.build b/src/locale/meson.build
index 0f3c5b2094..2f903cffd0 100644
--- a/src/locale/meson.build
+++ b/src/locale/meson.build
@@ -23,6 +23,20 @@ if conf.get('ENABLE_LOCALED', 0) == 1
install_dir : polkitpolicydir)
endif
+# If you know a way that allows the same variables to be used
+# in sources list and concatenated to a string for test_env,
+# let me know.
+kbd_model_map = meson.current_source_dir() + '/kbd-model-map'
+language_fallback_map = meson.current_source_dir() + '/language-fallback-map'
+
install_data('kbd-model-map',
'language-fallback-map',
install_dir : pkgdatadir)
+
+tests += [
+ [['src/locale/test-keymap-util.c',
+ 'src/locale/keymap-util.c',
+ 'src/locale/keymap-util.h'],
+ [libshared],
+ [libdl]],
+ ]
diff --git a/src/machine/meson.build b/src/machine/meson.build
index 8e2ca64665..1d83fece05 100644
--- a/src/machine/meson.build
+++ b/src/machine/meson.build
@@ -37,3 +37,11 @@ if conf.get('ENABLE_MACHINED', 0) == 1
install : true,
install_dir : polkitpolicydir)
endif
+
+tests += [
+ [['src/machine/test-machine-tables.c'],
+ [libmachine_core,
+ libshared],
+ [],
+ 'ENABLE_MACHINED'],
+ ]
diff --git a/src/network/meson.build b/src/network/meson.build
index 8af6cfde0c..8a15016307 100644
--- a/src/network/meson.build
+++ b/src/network/meson.build
@@ -73,6 +73,8 @@ systemd_networkd_wait_online_sources = files('''
networkctl_sources = files('networkctl.c')
+network_include_dir = include_directories('.')
+
if conf.get('ENABLE_NETWORKD', 0) == 1
networkd_gperf_c = custom_target(
'networkd-gperf.c',
@@ -109,3 +111,29 @@ if conf.get('ENABLE_NETWORKD', 0) == 1
install_data('systemd-networkd.rules',
install_dir : polkitrulesdir)
endif
+
+tests += [
+ [['src/network/test-networkd-conf.c'],
+ [libnetworkd_core,
+ libsystemd_network],
+ []],
+
+ [['src/network/test-network.c'],
+ [libnetworkd_core,
+ libudev_internal,
+ libsystemd_network,
+ libfirewall],
+ [libiptc]],
+
+ [['src/network/test-network-tables.c',
+ 'src/network/test-network-tables.c',
+ test_tables_h],
+ [libnetworkd_core,
+ libudev_internal,
+ libudev_core,
+ libsystemd_network,
+ libfirewall],
+ [],
+ '', '', [],
+ [network_include_dir] + libudev_core_includes],
+ ]
diff --git a/src/nspawn/meson.build b/src/nspawn/meson.build
index 7f91eaf2d7..c231486cfc 100644
--- a/src/nspawn/meson.build
+++ b/src/nspawn/meson.build
@@ -31,3 +31,12 @@ nspawn_gperf_c = custom_target(
command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
systemd_nspawn_sources += [nspawn_gperf_c]
+
+tests += [
+ [['src/nspawn/test-patch-uid.c',
+ 'src/nspawn/nspawn-patch-uid.c',
+ 'src/nspawn/nspawn-patch-uid.h'],
+ [libshared],
+ [libacl],
+ '', 'manual'],
+ ]
diff --git a/src/resolve/meson.build b/src/resolve/meson.build
index b2250180f0..5ece75b5be 100644
--- a/src/resolve/meson.build
+++ b/src/resolve/meson.build
@@ -143,3 +143,37 @@ endif
install_data('resolv.conf',
install_dir : rootlibexecdir)
+
+tests += [
+ [['src/resolve/test-resolve-tables.c',
+ basic_dns_sources,
+ dns_type_headers,
+ 'src/shared/test-tables.h'],
+ [libshared],
+ [libgcrypt,
+ libm],
+ 'ENABLE_RESOLVED'],
+
+ [['src/resolve/test-dns-packet.c',
+ basic_dns_sources,
+ dns_type_headers],
+ [libshared],
+ [libgcrypt,
+ libm],
+ 'ENABLE_RESOLVED'],
+
+ [['src/resolve/test-dnssec.c',
+ basic_dns_sources,
+ dns_type_headers],
+ [libshared],
+ [libgcrypt,
+ libm],
+ 'ENABLE_RESOLVED'],
+
+ [['src/resolve/test-dnssec-complex.c',
+ 'src/resolve/dns-type.c',
+ dns_type_headers],
+ [libshared],
+ [],
+ 'ENABLE_RESOLVED', 'manual'],
+ ]
diff --git a/src/shared/meson.build b/src/shared/meson.build
index f0bc8043e1..bbe08e983b 100644
--- a/src/shared/meson.build
+++ b/src/shared/meson.build
@@ -89,7 +89,6 @@ shared_sources = '''
sysctl-util.h
tests.c
tests.h
- test-tables.h
udev-util.h
uid-range.c
uid-range.h
@@ -102,6 +101,9 @@ shared_sources = '''
watchdog.h
'''.split()
+test_tables_h = files('test-tables.h')
+shared_sources += [test_tables_h]
+
if conf.get('HAVE_ACL', 0) == 1
shared_sources += ['acl-util.c']
endif
diff --git a/src/test/meson.build b/src/test/meson.build
new file mode 100644
index 0000000000..df074d8f19
--- /dev/null
+++ b/src/test/meson.build
@@ -0,0 +1,699 @@
+# -*- mode: meson -*-
+
+awkscript = 'test-hashmap-ordered.awk'
+test_hashmap_ordered_c = custom_target(
+ 'test-hashmap-ordered.c',
+ input : [awkscript, 'test-hashmap-plain.c'],
+ output : 'test-hashmap-ordered.c',
+ command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
+ capture : true)
+
+test_include_dir = include_directories('.')
+
+path = run_command('sh', ['-c', 'echo "$PATH"']).stdout()
+test_env = environment()
+test_env.set('SYSTEMD_KBD_MODEL_MAP', kbd_model_map)
+test_env.set('SYSTEMD_LANGUAGE_FALLBACK_MAP', language_fallback_map)
+test_env.set('PATH', path)
+test_env.prepend('PATH', meson.build_root())
+
+tests += [
+ [['src/test/test-device-nodes.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-engine.c'],
+ [libcore],
+ [librt,
+ libseccomp,
+ libselinux,
+ libmount]],
+
+ [['src/test/test-job-type.c'],
+ [libcore],
+ [librt,
+ libseccomp,
+ libselinux,
+ libmount]],
+
+ [['src/test/test-ns.c'],
+ [libcore],
+ [librt,
+ libseccomp,
+ libselinux,
+ libmount],
+ '', 'unsafe'],
+
+ [['src/test/test-loopback.c'],
+ [libcore],
+ [librt,
+ libseccomp,
+ libselinux,
+ libmount]],
+
+ [['src/test/test-hostname.c'],
+ [libcore],
+ [librt,
+ libseccomp,
+ libselinux,
+ libmount],
+ '', 'unsafe'],
+
+ [['src/test/test-dns-domain.c'],
+ [libcore,
+ libsystemd_network],
+ []],
+
+ [['src/test/test-boot-timestamps.c'],
+ [libshared],
+ [],
+ 'ENABLE_EFI'],
+
+ [['src/test/test-unit-name.c'],
+ [libcore],
+ [librt,
+ libseccomp,
+ libselinux,
+ libmount]],
+
+ [['src/test/test-unit-file.c'],
+ [libcore],
+ [librt,
+ libseccomp,
+ libselinux,
+ libmount]],
+
+ [['src/test/test-utf8.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-capability.c'],
+ [libshared],
+ [libcap]],
+
+ [['src/test/test-async.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-locale-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-copy.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-sigbus.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-condition.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-fdset.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-fstab-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-ratelimit.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-mount-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-exec-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-hexdecoct.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-alloc-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-xattr-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-io-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-glob-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-fs-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-proc-cmdline.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-fd-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-web-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-cpu-set-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-stat-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-escape.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-string-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-extract-word.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-parse-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-user-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-hostname-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-process-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-terminal-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-path-lookup.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-uid-range.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-cap-list.c',
+ generated_gperf_headers],
+ [libshared],
+ [libcap]],
+
+ [['src/test/test-socket-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-barrier.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-tmpfiles.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-namespace.c'],
+ [libcore],
+ []],
+
+ [['src/test/test-verbs.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-install-root.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-acl-util.c'],
+ [libshared],
+ [],
+ 'HAVE_ACL'],
+
+ [['src/test/test-seccomp.c'],
+ [libshared],
+ [libseccomp],
+ 'HAVE_SECCOMP'],
+
+ [['src/test/test-rlimit-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-ask-password-api.c'],
+ [libshared],
+ [],
+ '', 'manual'],
+
+ [['src/test/test-dissect-image.c'],
+ [libshared],
+ [libblkid],
+ '', 'manual'],
+
+ [['src/test/test-signal-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-selinux.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-sizeof.c'],
+ [],
+ []],
+
+ [['src/test/test-hashmap.c',
+ 'src/test/test-hashmap-plain.c',
+ test_hashmap_ordered_c],
+ [libshared],
+ []],
+
+ [['src/test/test-set.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-bitmap.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-xml.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-list.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-unaligned.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-tables.c',
+ 'src/shared/test-tables.h',
+ 'src/journal/journald-server.c',
+ 'src/journal/journald-server.h'],
+ [libcore,
+ libjournal_core,
+ libudev_core,
+ libudev_internal,
+ libsystemd_network],
+ [threads,
+ libseccomp,
+ libmount,
+ libxz,
+ liblz4],
+ '', '', [], libudev_core_includes],
+
+ [['src/test/test-prioq.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-fileio.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-time.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-clock.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-architecture.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-log.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-ipcrm.c'],
+ [libshared],
+ [],
+ '', 'unsafe'],
+
+ [['src/test/test-btrfs.c'],
+ [libshared],
+ [],
+ '', 'manual'],
+
+
+ [['src/test/test-firewall-util.c'],
+ [libfirewall,
+ libshared],
+ [],
+ 'HAVE_LIBIPTC'],
+
+ [['src/test/test-netlink-manual.c'],
+ [libshared],
+ [libkmod],
+ '', 'manual'],
+
+ [['src/test/test-ellipsize.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-date.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-sleep.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-replace-var.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-calendarspec.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-strip-tab-ansi.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-daemon.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-cgroup.c'],
+ [libshared],
+ [],
+ '', 'manual'],
+
+
+ [['src/test/test-cgroup-mask.c'],
+ [libcore],
+ [librt,
+ libseccomp,
+ libselinux,
+ libmount]],
+
+ [['src/test/test-cgroup-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-env-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-strbuf.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-strv.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-path-util.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-path.c'],
+ [libcore],
+ [librt,
+ libseccomp,
+ libselinux,
+ libmount]],
+
+ [['src/test/test-execute.c'],
+ [libcore],
+ [librt,
+ libseccomp,
+ libselinux,
+ libmount]],
+
+ [['src/test/test-siphash24.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-strxcpyx.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-install.c'],
+ [libcore],
+ [],
+ '', 'manual'],
+
+ [['src/test/test-watchdog.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-sched-prio.c'],
+ [libcore],
+ [librt,
+ libseccomp,
+ libselinux,
+ libmount]],
+
+ [['src/test/test-conf-files.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-conf-parser.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-af-list.c',
+ generated_gperf_headers],
+ [libshared],
+ []],
+
+ [['src/test/test-arphrd-list.c',
+ generated_gperf_headers],
+ [libshared],
+ []],
+
+ [['src/test/test-journal-importer.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-libudev.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-udev.c'],
+ [libudev_core,
+ libudev_internal,
+ libsystemd_network,
+ libshared],
+ [librt,
+ libblkid,
+ libkmod,
+ libacl],
+ '', 'manual'],
+
+ [['src/test/test-id128.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-hash.c'],
+ [libshared],
+ []],
+
+ [['src/test/test-nss.c'],
+ [libshared],
+ [libdl],
+ '', 'manual'],
+ ]
+
+############################################################
+
+# define some tests here, because the link_with deps were not defined earlier
+
+tests += [
+ [['src/journal/test-journal.c'],
+ [libjournal_core],
+ [threads,
+ libxz,
+ liblz4]],
+
+ [['src/journal/test-journal-send.c'],
+ [libjournal_core,
+ libshared],
+ []],
+
+ [['src/journal/test-journal-syslog.c'],
+ [libjournal_core,
+ libshared],
+ [threads,
+ libxz,
+ liblz4]],
+
+ [['src/journal/test-journal-match.c'],
+ [libshared],
+ [threads,
+ libxz,
+ liblz4]],
+
+ [['src/journal/test-journal-enum.c'],
+ [libshared],
+ []],
+
+ [['src/journal/test-journal-stream.c'],
+ [libshared],
+ [threads,
+ libxz,
+ liblz4]],
+
+ [['src/journal/test-journal-flush.c'],
+ [libshared],
+ [threads,
+ libxz,
+ liblz4]],
+
+ [['src/journal/test-journal-init.c'],
+ [libshared],
+ [threads,
+ libxz,
+ liblz4]],
+
+ [['src/journal/test-journal-verify.c'],
+ [libshared],
+ [threads,
+ libxz,
+ liblz4]],
+
+ [['src/journal/test-journal-interleaving.c'],
+ [libshared],
+ [threads,
+ libxz,
+ liblz4]],
+
+ [['src/journal/test-mmap-cache.c'],
+ [libshared],
+ []],
+
+ [['src/journal/test-catalog.c'],
+ [libshared],
+ [],
+ '', '', '-DCATALOG_DIR="@0@"'.format(build_catalog_dir)],
+
+ [['src/journal/test-compress.c'],
+ [libshared],
+ [liblz4,
+ libxz]],
+
+ [['src/journal/test-compress-benchmark.c'],
+ [libshared],
+ [liblz4,
+ libxz]],
+
+ [['src/journal/test-audit-type.c'],
+ [libshared],
+ []],
+ ]
+
+############################################################
+
+tests += [
+ [['src/libsystemd-network/test-dhcp-option.c',
+ 'src/libsystemd-network/dhcp-protocol.h',
+ 'src/libsystemd-network/dhcp-internal.h'],
+ [libshared,
+ libsystemd_network],
+ []],
+
+ [['src/libsystemd-network/test-dhcp-client.c',
+ 'src/libsystemd-network/dhcp-protocol.h',
+ 'src/libsystemd-network/dhcp-internal.h',
+ 'src/systemd/sd-dhcp-client.h'],
+ [libshared,
+ libsystemd_network],
+ []],
+
+ [['src/libsystemd-network/test-dhcp-server.c'],
+ [libshared,
+ libsystemd_network],
+ []],
+
+ [['src/libsystemd-network/test-ipv4ll.c',
+ 'src/libsystemd-network/arp-util.h',
+ 'src/systemd/sd-ipv4ll.h'],
+ [libshared,
+ libsystemd_network],
+ []],
+
+ [['src/libsystemd-network/test-ipv4ll-manual.c',
+ 'src/systemd/sd-ipv4ll.h'],
+ [libshared,
+ libsystemd_network],
+ [],
+ '', 'manual'],
+
+ [['src/libsystemd-network/test-acd.c',
+ 'src/systemd/sd-ipv4acd.h'],
+ [libshared,
+ libsystemd_network],
+ [],
+ '', 'manual'],
+
+ [['src/libsystemd-network/test-ndisc-rs.c',
+ 'src/libsystemd-network/dhcp-identifier.h',
+ 'src/libsystemd-network/dhcp-identifier.c',
+ 'src/libsystemd-network/icmp6-util.h',
+ 'src/systemd/sd-dhcp6-client.h',
+ 'src/systemd/sd-ndisc.h'],
+ [libshared,
+ libsystemd_network,
+ libudev],
+ []],
+
+ [['src/libsystemd-network/test-dhcp6-client.c',
+ 'src/libsystemd-network/dhcp-identifier.h',
+ 'src/libsystemd-network/dhcp-identifier.c',
+ 'src/libsystemd-network/dhcp6-internal.h',
+ 'src/systemd/sd-dhcp6-client.h'],
+ [libshared,
+ libsystemd_network,
+ libudev],
+ []],
+
+ [['src/libsystemd-network/test-lldp.c'],
+ [libshared,
+ libsystemd_network],
+ []],
+ ]
+
+############################################################
+
+tests += [
+ [['src/login/test-login-shared.c'],
+ [libshared],
+ []],
+
+ [['src/login/test-inhibit.c'],
+ [libshared],
+ [],
+ '', 'manual'],
+
+ [['src/login/test-login-tables.c'],
+ [liblogind_core,
+ libshared],
+ []],
+ ]
diff --git a/src/test/test-hashmap-ordered.awk b/src/test/test-hashmap-ordered.awk
new file mode 100644
index 0000000000..4e75a4655a
--- /dev/null
+++ b/src/test/test-hashmap-ordered.awk
@@ -0,0 +1,11 @@
+BEGIN {
+ print "/* GENERATED FILE */";
+ print "#define ORDERED"
+}
+{
+ if (!match($0, "^#include"))
+ gsub(/hashmap/, "ordered_hashmap");
+ gsub(/HASHMAP/, "ORDERED_HASHMAP");
+ gsub(/Hashmap/, "OrderedHashmap");
+ print
+}
diff --git a/src/udev/meson.build b/src/udev/meson.build
index 4965ee3534..6edec7dabc 100644
--- a/src/udev/meson.build
+++ b/src/udev/meson.build
@@ -92,12 +92,13 @@ link_config_gperf_c = custom_target(
############################################################
+libudev_core_includes = [includes, include_directories('net')]
libudev_core = static_library(
'udev-core',
libudev_core_sources,
link_config_gperf_c,
keyboard_keys_from_name_h,
- include_directories : [includes, include_directories('net')],
+ include_directories : libudev_core_includes,
link_with : [libshared])
executable('ata_id',