summaryrefslogtreecommitdiffstats
path: root/test/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'test/meson.build')
-rw-r--r--test/meson.build215
1 files changed, 215 insertions, 0 deletions
diff --git a/test/meson.build b/test/meson.build
new file mode 100644
index 0000000..f2080b5
--- /dev/null
+++ b/test/meson.build
@@ -0,0 +1,215 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+if install_tests
+ testdata_dir = testsdir + '/testdata/'
+
+ install_subdir('journal-data',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('units',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('test-execute',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('test-fstab-generator',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('test-path',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('test-path-util',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('test-umount',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('test-network-generator-conversion',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('testsuite-03.units',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('testsuite-04.units',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('testsuite-06.units',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('testsuite-10.units',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('testsuite-11.units',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('testsuite-16.units',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('testsuite-28.units',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('testsuite-30.units',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('testsuite-52.units',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ install_subdir('testsuite-63.units',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+
+ install_data(kbd_model_map,
+ install_dir : testdata_dir + '/test-keymap-util')
+
+ testsuite08_dir = testdata_dir + '/testsuite-08.units'
+ install_data('testsuite-08.units/-.mount',
+ install_dir : testsuite08_dir)
+ install_data('testsuite-08.units/systemd-remount-fs.service',
+ install_dir : testsuite08_dir)
+ meson.add_install_script(meson_make_symlink,
+ './-.mount',
+ testsuite08_dir + '/root.mount')
+ meson.add_install_script(meson_make_symlink,
+ '../-.mount',
+ testsuite08_dir + '/local-fs.target.wants/-.mount')
+
+ if conf.get('HAVE_GNU_EFI') == 1 and conf.get('HAVE_ZSTD') == 1
+ install_subdir('test-bcd',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ endif
+ if conf.get('ENABLE_RESOLVE') == 1
+ install_subdir('test-resolve',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+ endif
+
+ install_data('create-busybox-container',
+ install_mode : 'rwxr-xr-x',
+ install_dir : testdata_dir)
+endif
+
+test_fstab_generator_sh = find_program('test-fstab-generator.sh')
+test_network_generator_conversion_sh = find_program('test-network-generator-conversion.sh')
+test_systemctl_enable_sh = find_program('test-systemctl-enable.sh')
+test_systemd_tmpfiles_py = find_program('test-systemd-tmpfiles.py')
+hwdb_test_sh = find_program('hwdb-test.sh')
+
+############################################################
+
+test_sysusers_sh = configure_file(
+ input : 'test-sysusers.sh.in',
+ output : 'test-sysusers.sh',
+ configuration : conf)
+if install_tests and conf.get('ENABLE_SYSUSERS') == 1
+ install_data(test_sysusers_sh,
+ install_dir : testsdir)
+ install_subdir('test-sysusers',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
+endif
+
+############################################################
+
+test_compare_versions_sh = files('test-compare-versions.sh')
+if install_tests
+ install_data(test_compare_versions_sh,
+ install_dir : testsdir)
+endif
+
+############################################################
+
+rule_syntax_check_py = find_program('rule-syntax-check.py')
+if want_tests != 'false'
+ test('rule-syntax-check',
+ rule_syntax_check_py,
+ suite : 'dist-check',
+ args : all_rules)
+endif
+
+############################################################
+
+if install_tests
+ install_data('run-unit-tests.py',
+ install_mode : 'rwxr-xr-x',
+ install_dir : testsdir)
+
+ install_data('test-fstab-generator.sh',
+ install_mode : 'rwxr-xr-x',
+ install_dir : testsdir)
+
+ install_data('test-network-generator-conversion.sh',
+ install_mode : 'rwxr-xr-x',
+ install_dir : testsdir)
+endif
+
+############################################################
+
+# prepare test/sys tree
+sys_script_py = find_program('sys-script.py')
+custom_target(
+ 'sys',
+ command : [sys_script_py, meson.current_build_dir()],
+ output : 'sys',
+ build_by_default : want_tests != 'false')
+
+if perl.found()
+ udev_test_pl = find_program('udev-test.pl')
+ if want_tests != 'false'
+ test('udev-test',
+ udev_test_pl,
+ timeout : 180)
+ endif
+else
+ message('Skipping udev-test because perl is not available')
+endif
+
+############################################################
+
+rpm = find_program('rpm', required : false)
+rpmspec = find_program('rpmspec', required : false)
+test_rpm_macros = find_program('test-rpm-macros.sh')
+
+if rpm.found() and rpmspec.found()
+ if want_tests != 'false'
+ test('test-rpm-macros',
+ test_rpm_macros,
+ suite : 'dist-check',
+ args : [project_build_root])
+ endif
+else
+ message('Skipping test-rpm-macros since rpm and/or rpmspec are not available')
+endif
+
+############################################################
+
+if want_tests != 'false' and dmi_arches.contains(host_machine.cpu_family())
+ udev_dmi_memory_id_test = find_program('udev-dmi-memory-id-test.sh')
+
+ if git.found() and fs.exists(project_source_root / '.git')
+ out = run_command(
+ env, '-u', 'GIT_WORK_TREE',
+ git, '--git-dir=@0@/.git'.format(project_source_root),
+ 'ls-files', ':/test/dmidecode-dumps/*.bin',
+ check: true)
+ else
+ out = run_command(
+ sh, '-c', 'cd "$1"; echo test/dmidecode-dumps/*.bin', '_', project_source_root,
+ check: true)
+ endif
+
+ foreach p : out.stdout().split()
+ source = project_source_root / p
+ name = 'dmidecode_' + p.split('/')[-1].split('.')[0]
+
+ test(name,
+ udev_dmi_memory_id_test,
+ suite : 'dist-check',
+ args : [udev_prog_paths['dmi_memory_id'].full_path(),
+ source,
+ source + '.txt'],
+ depends : udev_prog_paths['dmi_memory_id'])
+ endforeach
+endif
+
+subdir('fuzz')