1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-22 17:35:35 +03:00

Merge pull request #26870 from fbuihuu/move-unit-tests-in-a-dedicated-subdir

Move unit tests in a dedicated subdir
This commit is contained in:
Luca Boccassi 2023-03-27 09:38:15 +01:00 committed by GitHub
commit 8e1a129136
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 32 additions and 29 deletions

View File

@ -201,6 +201,8 @@ kernelinstalldir = kerneldir / 'install.d'
factorydir = datadir / 'factory'
bootlibdir = prefixdir / 'lib/systemd/boot/efi'
testsdir = prefixdir / 'lib/systemd/tests'
unittestsdir = testsdir / 'unit-tests'
testdata_dir = testsdir / 'testdata'
systemdstatedir = localstatedir / 'lib/systemd'
catalogstatedir = systemdstatedir / 'catalog'
randomseeddir = localstatedir / 'lib/systemd'
@ -274,7 +276,7 @@ conf.set_quoted('SYSTEMD_LANGUAGE_FALLBACK_MAP', pkgdatadir / 'lang
conf.set_quoted('SYSTEMD_MAKEFS_PATH', rootlibexecdir / 'systemd-makefs')
conf.set_quoted('SYSTEMD_PULL_PATH', rootlibexecdir / 'systemd-pull')
conf.set_quoted('SYSTEMD_SHUTDOWN_BINARY_PATH', rootlibexecdir / 'systemd-shutdown')
conf.set_quoted('SYSTEMD_TEST_DATA', testsdir / 'testdata')
conf.set_quoted('SYSTEMD_TEST_DATA', testdata_dir)
conf.set_quoted('SYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH', rootbindir / 'systemd-tty-ask-password-agent')
conf.set_quoted('SYSTEMD_UPDATE_HELPER_PATH', rootlibexecdir / 'systemd-update-helper')
conf.set_quoted('SYSTEMD_USERWORK_PATH', rootlibexecdir / 'systemd-userwork')
@ -4320,7 +4322,7 @@ foreach test : tests
build_by_default : want_tests != 'false',
install_rpath : rootpkglibdir,
install : install_tests,
install_dir : testsdir / type,
install_dir : unittestsdir / type,
link_depends : runtest_env)
if type == 'manual'
@ -4344,7 +4346,7 @@ exe = executable(
dependencies : userspace,
build_by_default : want_tests != 'false',
install : install_tests,
install_dir : testsdir)
install_dir : unittestsdir)
if want_tests != 'false'
test('test-libsystemd-sym', exe)
endif
@ -4362,7 +4364,7 @@ exe = executable(
],
build_by_default : want_tests != 'false' and static_libsystemd_pic,
install : install_tests and static_libsystemd_pic,
install_dir : testsdir)
install_dir : unittestsdir)
if want_tests != 'false' and static_libsystemd_pic
test('test-libsystemd-static-sym', exe)
endif
@ -4376,7 +4378,7 @@ exe = executable(
dependencies : userspace,
build_by_default : want_tests != 'false',
install : install_tests,
install_dir : testsdir)
install_dir : unittestsdir)
if want_tests != 'false'
test('test-libudev-sym', exe)
endif
@ -4390,7 +4392,7 @@ exe = executable(
dependencies : userspace,
build_by_default : want_tests != 'false' and static_libudev_pic,
install : install_tests and static_libudev_pic,
install_dir : testsdir)
install_dir : unittestsdir)
if want_tests != 'false' and static_libudev_pic
test('test-libudev-static-sym', exe)
endif

View File

@ -20,6 +20,13 @@ $KERNEL_APPEND
# shellcheck source=test/test-functions
. "${TEST_BASE_DIR:?}/test-functions"
test_append_files() {
if get_bool "$LOOKS_LIKE_SUSE"; then
dinfo "Install the unit test binaries needed by the TEST-02-UNITTESTS at runtime"
inst_recursive "${SOURCE_DIR}/unit-tests"
fi
}
check_result_nspawn() {
check_result_nspawn_unittests "${1}"
}

View File

@ -1,8 +1,6 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
if install_tests
testdata_dir = testsdir + '/testdata/'
foreach subdir : [
'auxv',
'journal-data',
@ -59,6 +57,12 @@ if install_tests
install_data('create-busybox-container',
install_mode : 'rwxr-xr-x',
install_dir : testdata_dir)
# The unit tests implemented as shell scripts expect to find testdata/
# in the directory where they are stored.
meson.add_install_script(meson_make_symlink,
testdata_dir,
unittestsdir / 'testdata')
endif
test_bootctl_json_sh = find_program('test-bootctl-json.sh')
@ -76,7 +80,7 @@ test_sysusers_sh = configure_file(
configuration : conf)
if install_tests and conf.get('ENABLE_SYSUSERS') == 1
install_data(test_sysusers_sh,
install_dir : testsdir)
install_dir : unittestsdir)
install_subdir('test-sysusers',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
@ -87,7 +91,7 @@ endif
test_compare_versions_sh = files('test-compare-versions.sh')
if install_tests
install_data(test_compare_versions_sh,
install_dir : testsdir)
install_dir : unittestsdir)
endif
############################################################
@ -109,11 +113,11 @@ if install_tests
install_data('test-fstab-generator.sh',
install_mode : 'rwxr-xr-x',
install_dir : testsdir)
install_dir : unittestsdir)
install_data('test-network-generator-conversion.sh',
install_mode : 'rwxr-xr-x',
install_dir : testsdir)
install_dir : unittestsdir)
endif
############################################################

View File

@ -32,7 +32,7 @@ def argument_parser():
opts = argument_parser().parse_args()
unittestdir = pathlib.Path(__file__).parent.absolute()
unittestdir = pathlib.Path(__file__).parent.absolute() / 'unit-tests'
tests = list(unittestdir.glob('test-*'))
if opts.unsafe:

View File

@ -1144,7 +1144,7 @@ install_debian_systemd() {
ddebug "Install debian files from package $deb"
for file in $files; do
[ -e "$file" ] || continue
[ -d "$file" ] && continue
[ ! -L "$file" ] && [ -d "$file" ] && continue
inst "$file"
done
done < <(grep -E '^Package:' "${SOURCE_DIR}/debian/control" | cut -d ':' -f 2)
@ -1174,23 +1174,13 @@ install_suse_systemd() {
ddebug "Install files from package $p"
while read -r f; do
[ -e "$f" ] || continue
[ -d "$f" ] && continue
[ ! -L "$file" ] && [ -d "$file" ] && continue
inst "$f"
done < <(rpm -ql "$p")
done
# Embed the files needed by the extended testsuite at runtime. Also include
# the unit tests needed by TEST-02-UNITTESTS. This is mostly equivalent to
# what `ninja install` does for the tests when '-Dinstall-tests=true'.
#
# Why? openSUSE ships a package named 'systemd-testsuite' which contains
# the minimal set of files that allows to run the testsuite on the host (as
# long as it runs an equivalent version of systemd) getting rid of the
# hassles of fetching, configuring, building the source code.
dinfo "Install the files needed by the tests at runtime"
image_install "${SOURCE_DIR}"/test-*
dinfo "Install the data needed by the tests at runtime"
inst_recursive "${SOURCE_DIR}/testdata"
inst_recursive "${SOURCE_DIR}/manual"
# On openSUSE, this directory is not created at package install, at least
# for now.
@ -1272,7 +1262,7 @@ get_ldpath() {
install_missing_libraries() {
dinfo "Install missing libraries"
# install possible missing libraries
for i in "${initdir:?}"{,/usr}/{sbin,bin}/* "$initdir"{,/usr}/lib/systemd/{,tests/{,manual/,unsafe/}}*; do
for i in "${initdir:?}"{,/usr}/{sbin,bin}/* "$initdir"{,/usr}/lib/systemd/{,tests/unit-tests/{,manual/,unsafe/}}*; do
LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(get_ldpath "$i")" inst_libs "$i"
done

View File

@ -6,7 +6,7 @@ set -o pipefail
NPROC=$(nproc)
MAX_QUEUE_SIZE=${NPROC:-2}
TESTS_GLOB=${TESTS_GLOB:-test-*}
mapfile -t TEST_LIST < <(find /usr/lib/systemd/tests/ -maxdepth 1 -type f -name "${TESTS_GLOB}")
mapfile -t TEST_LIST < <(find /usr/lib/systemd/tests/unit-tests/ -maxdepth 1 -type f -name "${TESTS_GLOB}")
# reset state
rm -fv /failed-tests /skipped-tests /skipped

View File

@ -517,7 +517,7 @@ test_session_properties() {
create_session
s=$(loginctl list-sessions --no-legend | awk '$3 == "logind-test-user" { print $1 }')
/usr/lib/systemd/tests/manual/test-session-properties "/org/freedesktop/login1/session/_3${s?}"
/usr/lib/systemd/tests/unit-tests/manual/test-session-properties "/org/freedesktop/login1/session/_3${s?}"
}
test_list_users() {