Two fixlets for coverage test (#38183)

This commit is contained in:
Luca Boccassi
2025-07-14 21:16:36 +01:00
committed by GitHub
5 changed files with 22 additions and 5 deletions
+3 -4
View File
@@ -344,6 +344,7 @@ conf.set10('ENABLE_FIRST_BOOT_FULL_PRESET', get_option('first-
cc = meson.get_compiler('c')
userspace_c_args = []
userspace_c_ld_args = []
userspace_sources = []
meson_build_sh = find_program('tools/meson-build.sh')
want_tests = get_option('tests')
@@ -1963,9 +1964,7 @@ endif
#####################################################################
if get_option('b_coverage')
userspace_c_args += ['-include', 'coverage.h']
endif
subdir('src/coverage')
#####################################################################
@@ -1980,7 +1979,7 @@ jinja2_cmdline = [meson_render_jinja2, config_h]
userspace = declare_dependency(
compile_args : userspace_c_args,
link_args : userspace_c_ld_args,
sources : version_h,
sources : userspace_sources,
)
man_page_depends = []
+6
View File
@@ -0,0 +1,6 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
if get_option('b_coverage')
userspace_c_args += ['-include', meson.current_source_dir() / 'coverage.h']
userspace_sources += files('coverage.h')
endif
+1
View File
@@ -13,3 +13,4 @@ version_h = custom_target('version',
vcs_tag ? '1' : '0',
])
version_include = include_directories('.')
userspace_sources += [version_h]
+12 -1
View File
@@ -1422,7 +1422,18 @@ testcase_unpriv_dir() {
# Use an image owned by the foreign UID range first via direct mapping, and than via the managed uid logic
systemd-dissect --shift "$root" foreign
assert_eq "$(systemd-nspawn --pipe --register=no -D "$root" --private-users=pick --private-users-ownership=foreign bash -c 'echo foobar')" "foobar"
assert_eq "$(systemd-nspawn --pipe --register=no -D "$root" --private-users=managed --private-network bash -c 'echo foobar')" "foobar"
# FIXME:
# Since 90fa161b5ba29d58953e9f08ddca49121b51efe6, --bind= or Bind= settings for coverage directory does
# not work with managed mode:
# ========
# [ 158.105361] systemd-nspawn[3718]: Failed to open tree and set mount attributes: Operation not permitted
# [ 158.105364] systemd-nspawn[3718]: Failed to clone /coverage: Operation not permitted
# [ 158.118655] systemd-nspawn[3707]: (sd-namespace) failed with exit status 1.
# ========
# Let's tentatively skip the test case when running on coverage.
if [[ -z "${COVERAGE_BUILD_DIR:-}" ]]; then
assert_eq "$(systemd-nspawn --pipe --register=no -D "$root" --private-users=managed --private-network bash -c 'echo foobar')" "foobar"
fi
# Test unprivileged operation
chown testuser:testuser "$root/.."