martinpitt / umockdev

Mock hardware devices for creating unit tests and bug reporting
https://launchpad.net/umockdev
GNU Lesser General Public License v2.1
314 stars 58 forks source link

tests: umockdev-record: t_system_single: handle missing SELinux context on /dev/null #256

Closed g7 closed 3 weeks ago

g7 commented 3 weeks ago

/sys/fs/selinux might exist, yet the checked path might have no context defined.

Drop the check for the selinux pseudo-fs, and check the eventual errno if lgetfilecon() fails.

On ENODATA (context doesn't exist, or the process can't access it), ENOTSUP (extended attributes not supported/disabled) and ENOSYS (lgetxattr syscall used by lgetfilecon() not available), ensure __DEVCONTEXT is not there and continue.

On every other error, fail the test case as before.

g7 commented 3 weeks ago

v2:

martinpitt commented 3 weeks ago

@thesamesam @mattst88: Do you happen to know why valac does not get installed any more? It used to be part of

ACCEPT_KEYWORDS="~*" emerge dev-util/umockdev --with-test-deps --onlydeps --getbinpkg

in the run-gentoo test script, but that doesn't happen any more. This was introduced by @mattst88 in ed29c0107ead81c1e460fff3884 and basically unchanged since then, other than the binary package optimization in commit 6a1d57a80a511c.

I can hack around it:

--- tests/run-gentoo
+++ tests/run-gentoo
@@ -21,6 +21,8 @@ $RUNC run --interactive ${OPTS:-} \
 echo 'FEATURES="\${FEATURES} binpkg-request-signature"' >> /etc/portage/make.conf
 # install build dependencies
 ACCEPT_KEYWORDS="~*" emerge dev-util/umockdev --with-test-deps --onlydeps --getbinpkg
+# HACK: for some reason not part of build deps any more
+emerge --getbinpkg dev-lang/vala
 # install git, "meson dist" dependency
 emerge --getbinpkg dev-vcs/git

but that feels bad -- vala very much needs to be a build dependency of umockdev. Is that invocation wrong? Any help appreciated, thanks!

martinpitt commented 3 weeks ago

Sorry, let's discuss that Gentoo issue in PR #257 instead.