[libvirt] [PATCH] tests: Add tests for virCgroupDetectMounts

Jiri Denemark jdenemar at redhat.com
Tue Mar 17 12:39:50 UTC 2015


Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
---
 src/libvirt_private.syms                  |   1 +
 src/util/vircgroup.c                      |  19 ++--
 src/util/vircgrouppriv.h                  |   4 +
 tests/vircgroupdata/all-in-one.mounts     |   7 ++
 tests/vircgroupdata/all-in-one.parsed     |  10 +++
 tests/vircgroupdata/cgroups1.mounts       |  30 +++++++
 tests/vircgroupdata/cgroups1.parsed       |  10 +++
 tests/vircgroupdata/cgroups2.mounts       |  22 +++++
 tests/vircgroupdata/cgroups2.parsed       |  10 +++
 tests/vircgroupdata/cgroups3.mounts       |  28 ++++++
 tests/vircgroupdata/cgroups3.parsed       |  10 +++
 tests/vircgroupdata/fedora-18.mounts      |  30 +++++++
 tests/vircgroupdata/fedora-18.parsed      |  10 +++
 tests/vircgroupdata/fedora-21.mounts      |  33 +++++++
 tests/vircgroupdata/fedora-21.parsed      |  10 +++
 tests/vircgroupdata/no-cgroups.mounts     |  10 +++
 tests/vircgroupdata/no-cgroups.parsed     |  10 +++
 tests/vircgroupdata/ovirt-node-6.6.mounts | 144 ++++++++++++++++++++++++++++++
 tests/vircgroupdata/ovirt-node-6.6.parsed |  10 +++
 tests/vircgroupdata/ovirt-node-7.1.mounts | 142 +++++++++++++++++++++++++++++
 tests/vircgroupdata/ovirt-node-7.1.parsed |  10 +++
 tests/vircgroupdata/rhel-7.1.mounts       |  31 +++++++
 tests/vircgroupdata/rhel-7.1.parsed       |  10 +++
 tests/vircgrouptest.c                     |  71 +++++++++++++++
 24 files changed, 666 insertions(+), 6 deletions(-)
 create mode 100644 tests/vircgroupdata/all-in-one.mounts
 create mode 100644 tests/vircgroupdata/all-in-one.parsed
 create mode 100644 tests/vircgroupdata/cgroups1.mounts
 create mode 100644 tests/vircgroupdata/cgroups1.parsed
 create mode 100644 tests/vircgroupdata/cgroups2.mounts
 create mode 100644 tests/vircgroupdata/cgroups2.parsed
 create mode 100644 tests/vircgroupdata/cgroups3.mounts
 create mode 100644 tests/vircgroupdata/cgroups3.parsed
 create mode 100644 tests/vircgroupdata/fedora-18.mounts
 create mode 100644 tests/vircgroupdata/fedora-18.parsed
 create mode 100644 tests/vircgroupdata/fedora-21.mounts
 create mode 100644 tests/vircgroupdata/fedora-21.parsed
 create mode 100644 tests/vircgroupdata/no-cgroups.mounts
 create mode 100644 tests/vircgroupdata/no-cgroups.parsed
 create mode 100644 tests/vircgroupdata/ovirt-node-6.6.mounts
 create mode 100644 tests/vircgroupdata/ovirt-node-6.6.parsed
 create mode 100644 tests/vircgroupdata/ovirt-node-7.1.mounts
 create mode 100644 tests/vircgroupdata/ovirt-node-7.1.parsed
 create mode 100644 tests/vircgroupdata/rhel-7.1.mounts
 create mode 100644 tests/vircgroupdata/rhel-7.1.parsed

diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 1fb42ac..ca27af4 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1126,6 +1126,7 @@ virCgroupDenyAllDevices;
 virCgroupDenyDevice;
 virCgroupDenyDeviceMajor;
 virCgroupDenyDevicePath;
+virCgroupDetectMountsFromFile;
 virCgroupFree;
 virCgroupGetBlkioIoDeviceServiced;
 virCgroupGetBlkioIoServiced;
diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c
index e54a079..5c392ac 100644
--- a/src/util/vircgroup.c
+++ b/src/util/vircgroup.c
@@ -338,18 +338,19 @@ virCgroupCopyMounts(virCgroupPtr group,
  * Process /proc/mounts figuring out what controllers are
  * mounted and where
  */
-static int
-virCgroupDetectMounts(virCgroupPtr group)
+int
+virCgroupDetectMountsFromFile(virCgroupPtr group,
+                              const char *path,
+                              bool checkLinks)
 {
     size_t i;
     FILE *mounts = NULL;
     struct mntent entry;
     char buf[CGROUP_MAX_VAL];
 
-    mounts = fopen("/proc/mounts", "r");
+    mounts = fopen(path, "r");
     if (mounts == NULL) {
-        virReportSystemError(errno, "%s",
-                             _("Unable to open /proc/mounts"));
+        virReportSystemError(errno, _("Unable to open %s"), path);
         return -1;
     }
 
@@ -394,7 +395,7 @@ virCgroupDetectMounts(virCgroupPtr group)
 
                     /* If it is a co-mount it has a filename like "cpu,cpuacct"
                      * and we must identify the symlink path */
-                    if (strchr(tmp2 + 1, ',')) {
+                    if (checkLinks && strchr(tmp2 + 1, ',')) {
                         *tmp2 = '\0';
                         if (virAsprintf(&linksrc, "%s/%s",
                                         entry.mnt_dir, typestr) < 0)
@@ -436,6 +437,12 @@ virCgroupDetectMounts(virCgroupPtr group)
     return -1;
 }
 
+static int
+virCgroupDetectMounts(virCgroupPtr group)
+{
+    return virCgroupDetectMountsFromFile(group, "/proc/mounts", true);
+}
+
 
 static int
 virCgroupCopyPlacement(virCgroupPtr group,
diff --git a/src/util/vircgrouppriv.h b/src/util/vircgrouppriv.h
index 582be79..722863e 100644
--- a/src/util/vircgrouppriv.h
+++ b/src/util/vircgrouppriv.h
@@ -48,4 +48,8 @@ struct virCgroup {
     struct virCgroupController controllers[VIR_CGROUP_CONTROLLER_LAST];
 };
 
+int virCgroupDetectMountsFromFile(virCgroupPtr group,
+                                  const char *path,
+                                  bool checkLinks);
+
 #endif /* __VIR_CGROUP_PRIV_H__ */
diff --git a/tests/vircgroupdata/all-in-one.mounts b/tests/vircgroupdata/all-in-one.mounts
new file mode 100644
index 0000000..14093b9
--- /dev/null
+++ b/tests/vircgroupdata/all-in-one.mounts
@@ -0,0 +1,7 @@
+rootfs / rootfs rw 0 0
+sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
+proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
+udev /dev devtmpfs rw,relatime,size=16458560k,nr_inodes=4114640,mode=755 0 0
+devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
+nfsd /proc/fs/nfsd nfsd rw,relatime 0 0
+cgroup /sys/fs/cgroup cgroup rw,relatime,blkio,devices,memory,cpuacct,cpu,cpuset 0 0
diff --git a/tests/vircgroupdata/all-in-one.parsed b/tests/vircgroupdata/all-in-one.parsed
new file mode 100644
index 0000000..2701778
--- /dev/null
+++ b/tests/vircgroupdata/all-in-one.parsed
@@ -0,0 +1,10 @@
+cpu          /sys/fs/cgroup
+cpuacct      /sys/fs/cgroup
+cpuset       /sys/fs/cgroup
+memory       /sys/fs/cgroup
+devices      /sys/fs/cgroup
+freezer      <null>
+blkio        /sys/fs/cgroup
+net_cls      <null>
+perf_event   <null>
+name=systemd <null>
diff --git a/tests/vircgroupdata/cgroups1.mounts b/tests/vircgroupdata/cgroups1.mounts
new file mode 100644
index 0000000..881463a
--- /dev/null
+++ b/tests/vircgroupdata/cgroups1.mounts
@@ -0,0 +1,30 @@
+proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
+udev /dev devtmpfs rw,nosuid,relatime,size=10240k,nr_inodes=1494868,mode=755 0 0
+devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0
+sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
+/dev/mapper/root / ext4 rw,noatime,nodiratime,data=ordered 0 0
+tmpfs /run tmpfs rw,nodev,relatime,size=1202892k,mode=755 0 0
+mqueue /dev/mqueue mqueue rw,nosuid,nodev,noexec,relatime 0 0
+shm /dev/shm tmpfs rw,nosuid,nodev,noexec,relatime 0 0
+debugfs /sys/kernel/debug debugfs rw,nosuid,nodev,noexec,relatime 0 0
+cgroup_root /sys/fs/cgroup tmpfs rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755 0 0
+fusectl /sys/fs/fuse/connections fusectl rw,nosuid,nodev,noexec,relatime 0 0
+openrc /sys/fs/cgroup/openrc cgroup rw,nosuid,nodev,noexec,relatime,release_agent=/lib64/rc/sh/cgroup-release-agent.sh,name=openrc 0 0
+cpuset /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
+cpu /sys/fs/cgroup/cpu cgroup rw,nosuid,nodev,noexec,relatime,cpu 0 0
+cpuacct /sys/fs/cgroup/cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct 0 0
+memory /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
+devices /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
+freezer /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
+net_cls /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0
+blkio /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
+net_prio /sys/fs/cgroup/net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_prio 0 0
+hugetlb /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0
+/dev/sda1 /boot ext4 ro,noatime,nodiratime 0 0
+/dev/mapper/home /home ext4 rw,noatime,nodiratime,data=ordered 0 0
+/dev/mapper/logs /var/log ext4 rw,noatime,nodiratime,data=ordered 0 0
+/dev/mapper/tmp /tmp ext4 rw,noatime,nodiratime 0 0
+/dev/mapper/images /var/lib/libvirt/images ext4 rw,noatime,nodiratime,data=ordered 0 0
+binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
+/home/encrypted /home/decrypted ecryptfs rw,nosuid,nodev,noexec,relatime,ecryptfs_fnek_sig=abcdefabcdefabcd,ecryptfs_sig=efabcdefabcdefab,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_unlink_sigs 0 0
+/etc/autofs/auto.remote /mnt/remote autofs rw,relatime,fd=7,pgrp=511017,timeout=300,minproto=5,maxproto=5,indirect 0 0
diff --git a/tests/vircgroupdata/cgroups1.parsed b/tests/vircgroupdata/cgroups1.parsed
new file mode 100644
index 0000000..b6916f1
--- /dev/null
+++ b/tests/vircgroupdata/cgroups1.parsed
@@ -0,0 +1,10 @@
+cpu          /sys/fs/cgroup/cpu
+cpuacct      /sys/fs/cgroup/cpuacct
+cpuset       /sys/fs/cgroup/cpuset
+memory       /sys/fs/cgroup/memory
+devices      /sys/fs/cgroup/devices
+freezer      /sys/fs/cgroup/freezer
+blkio        /sys/fs/cgroup/blkio
+net_cls      /sys/fs/cgroup/net_cls
+perf_event   <null>
+name=systemd <null>
diff --git a/tests/vircgroupdata/cgroups2.mounts b/tests/vircgroupdata/cgroups2.mounts
new file mode 100644
index 0000000..21ab867
--- /dev/null
+++ b/tests/vircgroupdata/cgroups2.mounts
@@ -0,0 +1,22 @@
+rootfs / rootfs rw 0 0
+proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
+udev /dev devtmpfs rw,nosuid,relatime,size=10240k,nr_inodes=1006404,mode=755 0 0
+devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0
+sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
+/dev/sda1 / ext4 rw,noatime,data=ordered 0 0
+tmpfs /run tmpfs rw,nodev,relatime,size=812296k,mode=755 0 0
+mqueue /dev/mqueue mqueue rw,nosuid,nodev,noexec,relatime 0 0
+shm /dev/shm tmpfs rw,nosuid,nodev,noexec,relatime 0 0
+debugfs /sys/kernel/debug debugfs rw,nosuid,nodev,noexec,relatime 0 0
+cgroup_root /sys/fs/cgroup tmpfs rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755 0 0
+openrc /sys/fs/cgroup/openrc cgroup rw,nosuid,nodev,noexec,relatime,release_agent=/lib64/rc/sh/cgroup-release-agent.sh,name=openrc 0 0
+cpuset /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
+cpu /sys/fs/cgroup/cpu cgroup rw,nosuid,nodev,noexec,relatime,cpu 0 0
+cpuacct /sys/fs/cgroup/cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct 0 0
+memory /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
+devices /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
+freezer /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
+blkio /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
+perf_event /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
+hugetlb /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0
+binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
diff --git a/tests/vircgroupdata/cgroups2.parsed b/tests/vircgroupdata/cgroups2.parsed
new file mode 100644
index 0000000..5eb2bc7
--- /dev/null
+++ b/tests/vircgroupdata/cgroups2.parsed
@@ -0,0 +1,10 @@
+cpu          /sys/fs/cgroup/cpu
+cpuacct      /sys/fs/cgroup/cpuacct
+cpuset       /sys/fs/cgroup/cpuset
+memory       /sys/fs/cgroup/memory
+devices      /sys/fs/cgroup/devices
+freezer      /sys/fs/cgroup/freezer
+blkio        /sys/fs/cgroup/blkio
+net_cls      <null>
+perf_event   /sys/fs/cgroup/perf_event
+name=systemd <null>
diff --git a/tests/vircgroupdata/cgroups3.mounts b/tests/vircgroupdata/cgroups3.mounts
new file mode 100644
index 0000000..6d80e04
--- /dev/null
+++ b/tests/vircgroupdata/cgroups3.mounts
@@ -0,0 +1,28 @@
+/dev/rootvg/root / ext4 rw,noatime,data=ordered 0 0
+proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
+tmpfs /run tmpfs rw,nosuid,nodev,noexec,relatime,mode=755 0 0
+sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
+dev /dev devtmpfs rw,nosuid,relatime,size=10240k,nr_inodes=2039630,mode=755 0 0
+securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
+debugfs /sys/kernel/debug debugfs rw,nosuid,nodev,noexec,relatime 0 0
+mqueue /dev/mqueue mqueue rw,nosuid,nodev,noexec,relatime 0 0
+configfs /sys/kernel/config configfs rw,nosuid,nodev,noexec,relatime 0 0
+devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
+cgroup_root /sys/fs/cgroup tmpfs rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755 0 0
+tmpfs /dev/shm tmpfs rw,relatime 0 0
+fusectl /sys/fs/fuse/connections fusectl rw,nosuid,nodev,noexec,relatime 0 0
+efivarfs /sys/firmware/efi/efivars efivarfs rw,nosuid,nodev,noexec,relatime 0 0
+openrc /sys/fs/cgroup/openrc cgroup rw,nosuid,nodev,noexec,relatime,release_agent=/lib64/rc/sh/cgroup-release-agent.sh,name=openrc 0 0
+cpuset /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
+cpu /sys/fs/cgroup/cpu cgroup rw,nosuid,nodev,noexec,relatime,cpu 0 0
+cpuacct /sys/fs/cgroup/cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct 0 0
+memory /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
+devices /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
+freezer /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
+net_cls /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0
+blkio /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
+perf_event /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
+net_prio /sys/fs/cgroup/net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_prio 0 0
+hugetlb /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0
+tmpfs /tmp tmpfs rw,nosuid,noexec,relatime,size=3278448k 0 0
+binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
diff --git a/tests/vircgroupdata/cgroups3.parsed b/tests/vircgroupdata/cgroups3.parsed
new file mode 100644
index 0000000..2b1f382
--- /dev/null
+++ b/tests/vircgroupdata/cgroups3.parsed
@@ -0,0 +1,10 @@
+cpu          /sys/fs/cgroup/cpu
+cpuacct      /sys/fs/cgroup/cpuacct
+cpuset       /sys/fs/cgroup/cpuset
+memory       /sys/fs/cgroup/memory
+devices      /sys/fs/cgroup/devices
+freezer      /sys/fs/cgroup/freezer
+blkio        /sys/fs/cgroup/blkio
+net_cls      /sys/fs/cgroup/net_cls
+perf_event   /sys/fs/cgroup/perf_event
+name=systemd <null>
diff --git a/tests/vircgroupdata/fedora-18.mounts b/tests/vircgroupdata/fedora-18.mounts
new file mode 100644
index 0000000..dfe2852
--- /dev/null
+++ b/tests/vircgroupdata/fedora-18.mounts
@@ -0,0 +1,30 @@
+rootfs / rootfs rw 0 0
+proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
+sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
+devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=2006080k,nr_inodes=501520,mode=755 0 0
+securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
+selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
+tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev 0 0
+devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
+tmpfs /run tmpfs rw,seclabel,nosuid,nodev,mode=755 0 0
+tmpfs /sys/fs/cgroup tmpfs rw,seclabel,nosuid,nodev,noexec,mode=755 0 0
+cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
+pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
+cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
+cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0
+cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
+cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
+cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
+cgroup /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0
+cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
+cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
+/dev/vda1 / ext4 rw,seclabel,relatime,data=ordered 0 0
+rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
+systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=27,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0
+mqueue /dev/mqueue mqueue rw,seclabel,relatime 0 0
+tmpfs /tmp tmpfs rw,seclabel 0 0
+debugfs /sys/kernel/debug debugfs rw,relatime 0 0
+hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime 0 0
+configfs /sys/kernel/config configfs rw,relatime 0 0
+192.168.122.1:/home/qemu /home/qemu nfs rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.122.1,mountvers=3,mountport=20048,mountproto=udp,local_lock=none,addr=192.168.122.1 0 0
+192.168.122.1:/var/lib/libvirt/images /var/lib/libvirt/images nfs rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.122.1,mountvers=3,mountport=20048,mountproto=udp,local_lock=none,addr=192.168.122.1 0 0
diff --git a/tests/vircgroupdata/fedora-18.parsed b/tests/vircgroupdata/fedora-18.parsed
new file mode 100644
index 0000000..8d5ba75
--- /dev/null
+++ b/tests/vircgroupdata/fedora-18.parsed
@@ -0,0 +1,10 @@
+cpu          /sys/fs/cgroup/cpu,cpuacct
+cpuacct      /sys/fs/cgroup/cpu,cpuacct
+cpuset       /sys/fs/cgroup/cpuset
+memory       /sys/fs/cgroup/memory
+devices      /sys/fs/cgroup/devices
+freezer      /sys/fs/cgroup/freezer
+blkio        /sys/fs/cgroup/blkio
+net_cls      /sys/fs/cgroup/net_cls
+perf_event   /sys/fs/cgroup/perf_event
+name=systemd /sys/fs/cgroup/systemd
diff --git a/tests/vircgroupdata/fedora-21.mounts b/tests/vircgroupdata/fedora-21.mounts
new file mode 100644
index 0000000..dfa0a0f
--- /dev/null
+++ b/tests/vircgroupdata/fedora-21.mounts
@@ -0,0 +1,33 @@
+rootfs / rootfs rw,seclabel 0 0
+sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
+proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
+devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=2013724k,nr_inodes=503431,mode=755 0 0
+securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
+tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev 0 0
+devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
+tmpfs /run tmpfs rw,seclabel,nosuid,nodev,mode=755 0 0
+tmpfs /sys/fs/cgroup tmpfs ro,seclabel,nosuid,nodev,noexec,mode=755 0 0
+cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
+pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
+cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
+cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
+cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
+cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
+cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
+cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0
+cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
+cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
+cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0
+configfs /sys/kernel/config configfs rw,relatime 0 0
+/dev/vda2 / ext4 rw,seclabel,relatime,data=ordered 0 0
+selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
+systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=28,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0
+hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime 0 0
+mqueue /dev/mqueue mqueue rw,seclabel,relatime 0 0
+debugfs /sys/kernel/debug debugfs rw,relatime 0 0
+tmpfs /tmp tmpfs rw,seclabel 0 0
+sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
+nfsd /proc/fs/nfsd nfsd rw,relatime 0 0
+/dev/vda1 /boot ext4 rw,seclabel,relatime,data=ordered 0 0
+tmpfs /run/user/1000 tmpfs rw,seclabel,nosuid,nodev,relatime,size=404756k,mode=700,uid=1000,gid=1000 0 0
+tmpfs /run/user/0 tmpfs rw,seclabel,nosuid,nodev,relatime,size=404756k,mode=700 0 0
diff --git a/tests/vircgroupdata/fedora-21.parsed b/tests/vircgroupdata/fedora-21.parsed
new file mode 100644
index 0000000..3377af0
--- /dev/null
+++ b/tests/vircgroupdata/fedora-21.parsed
@@ -0,0 +1,10 @@
+cpu          /sys/fs/cgroup/cpu,cpuacct
+cpuacct      /sys/fs/cgroup/cpu,cpuacct
+cpuset       /sys/fs/cgroup/cpuset
+memory       /sys/fs/cgroup/memory
+devices      /sys/fs/cgroup/devices
+freezer      /sys/fs/cgroup/freezer
+blkio        /sys/fs/cgroup/blkio
+net_cls      /sys/fs/cgroup/net_cls,net_prio
+perf_event   /sys/fs/cgroup/perf_event
+name=systemd /sys/fs/cgroup/systemd
diff --git a/tests/vircgroupdata/no-cgroups.mounts b/tests/vircgroupdata/no-cgroups.mounts
new file mode 100644
index 0000000..8173e41
--- /dev/null
+++ b/tests/vircgroupdata/no-cgroups.mounts
@@ -0,0 +1,10 @@
+rootfs / rootfs rw 0 0
+sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
+proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
+udev /dev devtmpfs rw,relatime,size=10240k,nr_inodes=256016,mode=755 0 0
+devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
+tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=206096k,mode=755 0 0
+/dev/disk/by-uuid/e5690604-413c-4782-ab67-b3678cea9f80 / ext4 rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered 0 0
+tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
+tmpfs /run/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=549800k 0 0
+rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
diff --git a/tests/vircgroupdata/no-cgroups.parsed b/tests/vircgroupdata/no-cgroups.parsed
new file mode 100644
index 0000000..bf4eea0
--- /dev/null
+++ b/tests/vircgroupdata/no-cgroups.parsed
@@ -0,0 +1,10 @@
+cpu          <null>
+cpuacct      <null>
+cpuset       <null>
+memory       <null>
+devices      <null>
+freezer      <null>
+blkio        <null>
+net_cls      <null>
+perf_event   <null>
+name=systemd <null>
diff --git a/tests/vircgroupdata/ovirt-node-6.6.mounts b/tests/vircgroupdata/ovirt-node-6.6.mounts
new file mode 100644
index 0000000..ef07f4f
--- /dev/null
+++ b/tests/vircgroupdata/ovirt-node-6.6.mounts
@@ -0,0 +1,144 @@
+rootfs / rootfs rw 0 0
+proc /proc proc rw,relatime 0 0
+sysfs /sys sysfs rw,seclabel,relatime 0 0
+devtmpfs /dev devtmpfs rw,seclabel,relatime,size=132240744k,nr_inodes=33060186,mode=755 0 0
+devpts /dev/pts devpts rw,seclabel,relatime,gid=5,mode=620,ptmxmode=000 0 0
+tmpfs /dev/shm tmpfs rw,seclabel,relatime 0 0
+/dev/sdi2 /dev/.initramfs/live ext2 ro,seclabel,relatime,errors=continue 0 0
+/dev/mapper/live-rw / ext2 ro,seclabel,relatime,errors=continue,user_xattr,acl 0 0
+none /selinux selinuxfs rw,relatime 0 0
+devtmpfs /dev devtmpfs rw,seclabel,relatime,size=132240744k,nr_inodes=33060186,mode=755 0 0
+/proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0
+none /var/lib/stateless/writable tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/cache/man tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lock tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/log tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/run tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lib/dbus tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lib/nfs tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /tmp tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/cache/hald tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lib/dhclient tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/tmp tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /media tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lib/iscsi tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lib/logrotate.status tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lib/ntp tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lib/random-seed tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/spool tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /etc tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lib/net-snmp tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lib/dnsmasq tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /root/.ssh tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /root/.uml tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/cache/libvirt tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lib/libvirt tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/cache/multipathd tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /mnt tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /boot tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /boot-kdump tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /cgroup tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lib/yum tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/cache/yum tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /usr/share/snmp/mibs tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lib/lldpad tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/cache/rpcbind tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /usr/share/snmp/mibs tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lib/lldpad tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/cache/rpcbind tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/cache/rhn tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/db tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /usr/libexec/vdsm/hooks tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /var/lib/vdsm tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+none /rhev/data-center tmpfs rw,rootcontext=system_u:object_r:var_lib_t:s0,seclabel,relatime 0 0
+/dev/mapper/HostVG-Config /config ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/fstab ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/shadow ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/default/ovirt ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/rsyslog.conf ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/libvirt/passwd.db ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/passwd ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/libvirt/qemu/networks ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ssh/sshd_config ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/pki ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/iscsi/initiatorname.iscsi ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/random-seed ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/keyboard ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/iptables ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/resolv.conf ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ntp.conf ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/hosts ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/shadow ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/vdsm/vdsm.conf ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/vdsm-reg/vdsm-reg.conf ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-lo ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/multipath.conf ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/shadow ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/virt-who ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/vdsm/persistence ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+tmpfs /dev/shm tmpfs rw,rootcontext=system_u:object_r:tmpfs_t:s0,seclabel,relatime 0 0
+debugfs /sys/kernel/debug debugfs rw,relatime 0 0
+/dev/mapper/HostVG-Logging /var/log ext4 rw,seclabel,noatime,barrier=0,stripe=64,data=ordered 0 0
+/dev/mapper/HostVG-Data /data ext4 rw,seclabel,noatime,barrier=0,stripe=64,data=ordered 0 0
+/dev/mapper/HostVG-Data /var/lib/libvirt/images ext4 rw,seclabel,noatime,barrier=0,stripe=64,data=ordered 0 0
+/dev/mapper/HostVG-Data /var/log/core ext4 rw,seclabel,noatime,barrier=0,stripe=64,data=ordered 0 0
+none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
+/dev/mapper/HostVG-Logging /tmp/early-logs ext4 rw,seclabel,noatime,barrier=0,stripe=64,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ssh/ssh_host_key ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ssh/ssh_host_key.pub ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ssh/ssh_host_dsa_key ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ssh/ssh_host_dsa_key.pub ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ssh/ssh_host_rsa_key ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ssh/ssh_host_rsa_key.pub ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/udev/rules.d/71-persistent-node-net.rules ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/vdsm/vdsm.id ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/udev/rules.d/12-ovirt-iosched.rules ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /root/.ssh/authorized_keys ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/vdsm/upgrade/upgrade-unified-persistence ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-bond0 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-bond0.11 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-bond0.100 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-bond0.200 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-bond0.21 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-bond0.3 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-bond0.31 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-bond0.4 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-bond0.41 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-bond0.5 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-bond0.51 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-bond0.6 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-eth0 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-eth1 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-eth2 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-eth3 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-rhevm ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-vnet_info ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-vnet_migration ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-vnet_servers ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-vnet_test ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-vnet_views ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-vnet_vms_ant ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-vnet_vms_lim ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-vnet_vms_ovl ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-vnet_vms_vlb ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-vnet_vms_wvl ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-bond0.10 ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-vnet_personeel ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+tmpfs /dev/shm tmpfs rw,rootcontext=system_u:object_r:tmpfs_t:s0,seclabel,relatime 0 0
+/dev/mapper/HostVG-Data /var/lib/libvirt/images ext4 rw,seclabel,noatime,barrier=0,stripe=64,data=ordered 0 0
+/dev/mapper/HostVG-Data /var/log/core ext4 rw,seclabel,noatime,barrier=0,stripe=64,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/libvirt/libvirtd.conf ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/libvirtd ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/libvirt/qemu.conf ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/libvirt/qemu-sanlock.conf ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/logrotate.d/libvirtd ext4 rw,seclabel,noatime,barrier=0,stripe=256,data=ordered 0 0
+cgroup /cgroup/cpuset cgroup rw,relatime,cpuset 0 0
+cgroup /cgroup/cpu cgroup rw,relatime,cpu 0 0
+cgroup /cgroup/cpuacct cgroup rw,relatime,cpuacct 0 0
+cgroup /cgroup/memory cgroup rw,relatime,memory 0 0
+cgroup /cgroup/devices cgroup rw,relatime,devices 0 0
+cgroup /cgroup/freezer cgroup rw,relatime,freezer 0 0
+cgroup /cgroup/net_cls cgroup rw,relatime,net_cls 0 0
+cgroup /cgroup/blkio cgroup rw,relatime,blkio 0 0
+sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
diff --git a/tests/vircgroupdata/ovirt-node-6.6.parsed b/tests/vircgroupdata/ovirt-node-6.6.parsed
new file mode 100644
index 0000000..01bf466
--- /dev/null
+++ b/tests/vircgroupdata/ovirt-node-6.6.parsed
@@ -0,0 +1,10 @@
+cpu          /cgroup/cpu
+cpuacct      /cgroup/cpuacct
+cpuset       /cgroup/cpuset
+memory       /cgroup/memory
+devices      /cgroup/devices
+freezer      /cgroup/freezer
+blkio        /cgroup/blkio
+net_cls      /cgroup/net_cls
+perf_event   <null>
+name=systemd <null>
diff --git a/tests/vircgroupdata/ovirt-node-7.1.mounts b/tests/vircgroupdata/ovirt-node-7.1.mounts
new file mode 100644
index 0000000..74f7db9
--- /dev/null
+++ b/tests/vircgroupdata/ovirt-node-7.1.mounts
@@ -0,0 +1,142 @@
+rootfs / rootfs rw 0 0
+proc /proc proc rw,relatime 0 0
+sysfs /sys sysfs rw,seclabel,relatime 0 0
+devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=3922156k,nr_inodes=980539,mode=755 0 0
+securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
+tmpfs /dev/shm tmpfs rw,seclabel,relatime 0 0
+devpts /dev/pts devpts rw,seclabel,relatime,gid=5,mode=620,ptmxmode=000 0 0
+tmpfs /run tmpfs rw,seclabel,nosuid,nodev,mode=755 0 0
+tmpfs /sys/fs/cgroup tmpfs rw,seclabel,nosuid,nodev,noexec,mode=755 0 0
+cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
+pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
+cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
+cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0
+cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
+cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
+cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
+cgroup /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0
+cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
+cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
+cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0
+configfs /sys/kernel/config configfs rw,relatime 0 0
+/dev/sda3 /run/initramfs/live ext2 ro,seclabel,relatime 0 0
+/dev/mapper/live-rw / ext2 ro,seclabel,noatime 0 0
+rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
+selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
+systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=33,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0
+mqueue /dev/mqueue mqueue rw,seclabel,relatime 0 0
+hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime 0 0
+debugfs /sys/kernel/debug debugfs rw,relatime 0 0
+none /var/lib/stateless/writable tmpfs rw,seclabel,relatime 0 0
+none /var/cache/man tmpfs rw,seclabel,relatime 0 0
+none /var/log tmpfs rw,seclabel,relatime 0 0
+none /var/lib/dbus tmpfs rw,seclabel,relatime 0 0
+none /tmp tmpfs rw,seclabel,relatime 0 0
+none /var/lib/dhclient tmpfs rw,seclabel,relatime 0 0
+none /var/tmp tmpfs rw,seclabel,relatime 0 0
+none /var/lib/iscsi tmpfs rw,seclabel,relatime 0 0
+none /var/lib/logrotate.status tmpfs rw,seclabel,relatime 0 0
+none /var/lib/ntp tmpfs rw,seclabel,relatime 0 0
+none /var/lib/random-seed tmpfs rw,seclabel,relatime 0 0
+none /var/spool tmpfs rw,seclabel,relatime 0 0
+none /var/lib/nfs tmpfs rw,seclabel,relatime 0 0
+none /var/lib/ovirt-hosted-engine-setup tmpfs rw,seclabel,relatime 0 0
+none /etc tmpfs rw,seclabel,relatime 0 0
+none /var/lib/net-snmp tmpfs rw,seclabel,relatime 0 0
+none /var/lib/dnsmasq tmpfs rw,seclabel,relatime 0 0
+none /root/.ssh tmpfs rw,seclabel,relatime 0 0
+none /root/.uml tmpfs rw,seclabel,relatime 0 0
+none /var/cache/libvirt tmpfs rw,seclabel,relatime 0 0
+none /var/lib/libvirt tmpfs rw,seclabel,relatime 0 0
+none /var/cache/multipathd tmpfs rw,seclabel,relatime 0 0
+none /mnt tmpfs rw,seclabel,relatime 0 0
+none /boot tmpfs rw,seclabel,relatime 0 0
+none /boot-kdump tmpfs rw,seclabel,relatime 0 0
+none /var/lib/yum tmpfs rw,seclabel,relatime 0 0
+none /var/cache/yum tmpfs rw,seclabel,relatime 0 0
+none /usr/share/snmp/mibs tmpfs rw,seclabel,relatime 0 0
+none /var/lib/lldpad tmpfs rw,seclabel,relatime 0 0
+none /usr/share/snmp/mibs tmpfs rw,seclabel,relatime 0 0
+none /var/lib/stateless/writable/usr/share/snmp/mibs tmpfs rw,seclabel,relatime 0 0
+none /var/lib/lldpad tmpfs rw,seclabel,relatime 0 0
+none /var/lib/stateless/writable/var/lib/lldpad tmpfs rw,seclabel,relatime 0 0
+none /var/cache/rhn tmpfs rw,seclabel,relatime 0 0
+none /var/db tmpfs rw,seclabel,relatime 0 0
+none /usr/libexec/vdsm/hooks tmpfs rw,seclabel,relatime 0 0
+none /var/lib/vdsm tmpfs rw,seclabel,relatime 0 0
+none /rhev/data-center tmpfs rw,seclabel,relatime 0 0
+none /var/lib/dhclient tmpfs rw,seclabel,relatime 0 0
+none /var/lib/stateless/writable/var/lib/dhclient tmpfs rw,seclabel,relatime 0 0
+/dev/mapper/HostVG-Config /config ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/fstab ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/fstab ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/hosts ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/hosts ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/sysconfig/network ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-lo ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/sysconfig/network-scripts/ifcfg-lo ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/resolv.conf ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/resolv.conf ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ntp.conf ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/ntp.conf ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ssh/sshd_config ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/ssh/sshd_config ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/kdump.conf ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/kdump.conf ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/default/ovirt ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/default/ovirt ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/rsyslog.conf ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/rsyslog.conf ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/libvirt/passwd.db ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/libvirt/passwd.db ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/libvirt/qemu ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/libvirt/qemu ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/pki ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/pki ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/iscsi/initiatorname.iscsi ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/iscsi/initiatorname.iscsi ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/random-seed ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/var/lib/random-seed ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/glusterd ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/virt-who ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/sysconfig/virt-who ext4 rw,seclabel,noatime,data=ordered 0 0
+sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
+sunrpc /var/lib/stateless/writable/var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
+none /tmp/early-logs tmpfs rw,seclabel,relatime 0 0
+none /var/lib/stateless/writable/tmp/early-logs tmpfs rw,seclabel,relatime 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/network-scripts/ifcfg-em1 ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/sysconfig/network-scripts/ifcfg-em1 ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ssh/ssh_host_rsa_key ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/ssh/ssh_host_rsa_key ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ssh/ssh_host_rsa_key.pub ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/ssh/ssh_host_rsa_key.pub ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ssh/ssh_host_ecdsa_key ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/ssh/ssh_host_ecdsa_key ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ssh/ssh_host_ecdsa_key.pub ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/ssh/ssh_host_ecdsa_key.pub ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ssh/ssh_host_ed25519_key ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/ssh/ssh_host_ed25519_key ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/ssh/ssh_host_ed25519_key.pub ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/ssh/ssh_host_ed25519_key.pub ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Logging /var/log ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Logging /var/lib/stateless/writable/tmp/early-logs ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Logging /var/lib/stateless/writable/var/log ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Data /data ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Data /var/lib/libvirt/images ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Data /var/lib/stateless/writable/var/lib/libvirt/images ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Data /var/log/core ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Data /var/lib/stateless/writable/tmp/early-logs/core ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Data /var/lib/stateless/writable/var/log/core ext4 rw,seclabel,noatime,data=ordered 0 0
+tmpfs /dev/.initramfs tmpfs rw,seclabel,nosuid,nodev,mode=755 0 0
+/dev/sda3 /dev/.initramfs/live ext2 ro,seclabel,relatime 0 0
+/dev/mapper/HostVG-Config /etc/libvirt/libvirtd.conf ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/libvirt/libvirtd.conf ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/sysconfig/libvirtd ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/sysconfig/libvirtd ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/libvirt/qemu.conf ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/libvirt/qemu.conf ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/libvirt/qemu-sanlock.conf ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/libvirt/qemu-sanlock.conf ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /etc/logrotate.d/libvirtd ext4 rw,seclabel,noatime,data=ordered 0 0
+/dev/mapper/HostVG-Config /var/lib/stateless/writable/etc/logrotate.d/libvirtd ext4 rw,seclabel,noatime,data=ordered 0 0
diff --git a/tests/vircgroupdata/ovirt-node-7.1.parsed b/tests/vircgroupdata/ovirt-node-7.1.parsed
new file mode 100644
index 0000000..8d5ba75
--- /dev/null
+++ b/tests/vircgroupdata/ovirt-node-7.1.parsed
@@ -0,0 +1,10 @@
+cpu          /sys/fs/cgroup/cpu,cpuacct
+cpuacct      /sys/fs/cgroup/cpu,cpuacct
+cpuset       /sys/fs/cgroup/cpuset
+memory       /sys/fs/cgroup/memory
+devices      /sys/fs/cgroup/devices
+freezer      /sys/fs/cgroup/freezer
+blkio        /sys/fs/cgroup/blkio
+net_cls      /sys/fs/cgroup/net_cls
+perf_event   /sys/fs/cgroup/perf_event
+name=systemd /sys/fs/cgroup/systemd
diff --git a/tests/vircgroupdata/rhel-7.1.mounts b/tests/vircgroupdata/rhel-7.1.mounts
new file mode 100644
index 0000000..1d6aaea
--- /dev/null
+++ b/tests/vircgroupdata/rhel-7.1.mounts
@@ -0,0 +1,31 @@
+rootfs / rootfs rw 0 0
+proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
+sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
+devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=3038192k,nr_inodes=759548,mode=755 0 0
+securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
+tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev 0 0
+devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
+tmpfs /run tmpfs rw,seclabel,nosuid,nodev,mode=755 0 0
+tmpfs /sys/fs/cgroup tmpfs rw,seclabel,nosuid,nodev,noexec,mode=755 0 0
+cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
+pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
+cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
+cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0
+cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
+cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
+cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
+cgroup /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0
+cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
+cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
+cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0
+configfs /sys/kernel/config configfs rw,relatime 0 0
+/dev/sda7 / ext4 rw,seclabel,relatime,data=ordered 0 0
+selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
+systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=36,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0
+mqueue /dev/mqueue mqueue rw,seclabel,relatime 0 0
+debugfs /sys/kernel/debug debugfs rw,relatime 0 0
+hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime 0 0
+sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
+nfsd /proc/fs/nfsd nfsd rw,relatime 0 0
+/dev/sda4 /home ext4 rw,seclabel,relatime,data=ordered 0 0
+colossus:/data/nfsroot /virt-nfs nfs4 rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=1.2.3.4,local_lock=none,addr=1.2.3.5 0 0
diff --git a/tests/vircgroupdata/rhel-7.1.parsed b/tests/vircgroupdata/rhel-7.1.parsed
new file mode 100644
index 0000000..8d5ba75
--- /dev/null
+++ b/tests/vircgroupdata/rhel-7.1.parsed
@@ -0,0 +1,10 @@
+cpu          /sys/fs/cgroup/cpu,cpuacct
+cpuacct      /sys/fs/cgroup/cpu,cpuacct
+cpuset       /sys/fs/cgroup/cpuset
+memory       /sys/fs/cgroup/memory
+devices      /sys/fs/cgroup/devices
+freezer      /sys/fs/cgroup/freezer
+blkio        /sys/fs/cgroup/blkio
+net_cls      /sys/fs/cgroup/net_cls
+perf_event   /sys/fs/cgroup/perf_event
+name=systemd /sys/fs/cgroup/systemd
diff --git a/tests/vircgrouptest.c b/tests/vircgrouptest.c
index cc1825b..efad77d 100644
--- a/tests/vircgrouptest.c
+++ b/tests/vircgrouptest.c
@@ -158,6 +158,58 @@ const char *linksLogind[VIR_CGROUP_CONTROLLER_LAST] = {
 };
 
 
+static int
+testCgroupDetectMounts(const void *args)
+{
+    int result = -1;
+    const char *file = args;
+    char *mounts = NULL;
+    char *parsed = NULL;
+    char *expected = NULL;
+    const char *actual;
+    virCgroupPtr group = NULL;
+    virBuffer buf = VIR_BUFFER_INITIALIZER;
+    size_t i;
+
+    if (virAsprintf(&mounts, "%s/vircgroupdata/%s.mounts",
+                    abs_srcdir, file) < 0 ||
+        virAsprintf(&parsed, "%s/vircgroupdata/%s.parsed",
+                    abs_srcdir, file) < 0 ||
+        VIR_ALLOC(group) < 0)
+        goto cleanup;
+
+    if (virCgroupDetectMountsFromFile(group, mounts, false) < 0)
+        goto cleanup;
+
+    if (virtTestLoadFile(parsed, &expected) < 0)
+        goto cleanup;
+
+    for (i = 0; i < VIR_CGROUP_CONTROLLER_LAST; i++) {
+        virBufferAsprintf(&buf, "%-12s %s\n",
+                          virCgroupControllerTypeToString(i),
+                          NULLSTR(group->controllers[i].mountPoint));
+    }
+    if (virBufferCheckError(&buf) < 0)
+        goto cleanup;
+
+    actual = virBufferCurrentContent(&buf);
+    if (STRNEQ(expected, actual)) {
+        virtTestDifference(stderr, expected, actual);
+        goto cleanup;
+    }
+
+    result = 0;
+
+ cleanup:
+    VIR_FREE(mounts);
+    VIR_FREE(parsed);
+    VIR_FREE(expected);
+    virCgroupFree(&group);
+    virBufferFreeAndReset(&buf);
+    return result;
+}
+
+
 static int testCgroupNewForSelf(const void *args ATTRIBUTE_UNUSED)
 {
     virCgroupPtr cgroup = NULL;
@@ -793,6 +845,25 @@ mymain(void)
 
     setenv("LIBVIRT_FAKE_SYSFS_DIR", fakesysfsdir, 1);
 
+# define DETECT_MOUNTS(file)                                            \
+    do {                                                                \
+        if (virtTestRun("Detect cgroup mounts for " file,               \
+                        testCgroupDetectMounts,                         \
+                        file) < 0)                                      \
+            ret = -1;                                                   \
+    } while (0)
+
+    DETECT_MOUNTS("ovirt-node-6.6");
+    DETECT_MOUNTS("ovirt-node-7.1");
+    DETECT_MOUNTS("fedora-18");
+    DETECT_MOUNTS("fedora-21");
+    DETECT_MOUNTS("rhel-7.1");
+    DETECT_MOUNTS("cgroups1");
+    DETECT_MOUNTS("cgroups2");
+    DETECT_MOUNTS("cgroups3");
+    DETECT_MOUNTS("all-in-one");
+    DETECT_MOUNTS("no-cgroups");
+
     if (virtTestRun("New cgroup for self", testCgroupNewForSelf, NULL) < 0)
         ret = -1;
 
-- 
2.3.3




More information about the libvir-list mailing list