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')
endif
endforeach
+want_tests = get_option('tests')
+tests = []
+
#####################################################################
if get_option('efi')
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',
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,
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')
--- /dev/null
+# -*- 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],
+ []],
+ ]