[libvirt] [PATCH] vircgroupmock: Mock access("/sys/devices/system/cpu/present")

Michal Privoznik mprivozn at redhat.com
Thu Feb 25 08:08:54 UTC 2016


There's been a report on the upstream list [1] describing we
access /sys/devices/system/cpu/present directly on the host from
within our test suite. This may end up in unpredictable results
as no all linux systems are required to have that file. Mock
access to the file.

libvirt.git/tests $ ../run strace vircgrouptest
...
access("/sys/devices/system/cpu/present", F_OK) = 0
open("libvirt.git/tests/fakerootdir-DmE8Z9/not/really/sys/fs/cgroup//devices_system_cpu_present", O_RDONLY) = 4
read(4, "8-23,48-159\n", 5121)          = 12
read(4, "", 5109)                       = 0
close(4)                                = 0
...

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 tests/vircgroupmock.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tests/vircgroupmock.c b/tests/vircgroupmock.c
index 9ce7d41..756ac51 100644
--- a/tests/vircgroupmock.c
+++ b/tests/vircgroupmock.c
@@ -541,7 +541,8 @@ int access(const char *path, int mode)
         ret = realaccess(newpath, mode);
         free(newpath);
     } else if (STREQ(path, "/proc/cgroups") ||
-               STREQ(path, "/proc/self/cgroup")) {
+               STREQ(path, "/proc/self/cgroup") ||
+               STREQ(path, SYSFS_CPU_PRESENT)) {
         /* These files are readable for all. */
         ret = (mode == F_OK || mode == R_OK) ? 0 : -1;
     } else if (STREQ(path, "/proc/mounts")) {
-- 
2.4.10




More information about the libvir-list mailing list