]> xenbits.xensource.com Git - libvirt.git/commitdiff
vircgroupmock: mock virCgroupV2DevicesAvailable
authorPavel Hrdina <phrdina@redhat.com>
Mon, 24 Jun 2019 13:13:37 +0000 (15:13 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Fri, 15 Nov 2019 11:58:43 +0000 (12:58 +0100)
We need to mock virCgroupV2DevicesAvailable() in order to remove any
dependency on kernel as BPF devices might not be available.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/util/vircgroupv2devices.h
tests/vircgroupdata/hybrid.parsed
tests/vircgroupmock.c
tests/vircgrouptest.c

index 593ed35203cdb849bf7a5dfd0805a5e03fc5c882..7b6cececc147babfadb08573daf7547d68d473a0 100644 (file)
 
 #include <sys/types.h>
 
+#include "internal.h"
+
 #include "vircgroup.h"
 
 bool
-virCgroupV2DevicesAvailable(virCgroupPtr group);
+virCgroupV2DevicesAvailable(virCgroupPtr group)
+    G_GNUC_NO_INLINE;
 
 int
 virCgroupV2DevicesAttachProg(virCgroupPtr group,
index 7600de5f45a944cd606f40e15344c8d4c97c0cf6..f755eed46598b2185995fcc67c1d84d698045177 100644 (file)
@@ -2,7 +2,7 @@ cpu          <null>
 cpuacct      <null>
 cpuset       /not/really/sys/fs/cgroup/cpuset
 memory       <null>
-devices      /not/really/sys/fs/cgroup/devices
+devices      <null>
 freezer      /not/really/sys/fs/cgroup/freezer
 blkio        <null>
 net_cls      /not/really/sys/fs/cgroup/net_cls
index 3168b689f223b2a0ea9c1502cad3435dadf7fba5..34512d6fd867238226c9fcd2905c959bb0d35cf3 100644 (file)
@@ -35,6 +35,7 @@
 # include "virstring.h"
 # include "virfile.h"
 # include "viralloc.h"
+# include "vircgroupv2devices.h"
 
 static int (*real_open)(const char *path, int flags, ...);
 static FILE *(*real_fopen)(const char *path, const char *mode);
@@ -597,6 +598,12 @@ int open(const char *path, int flags, ...)
     free(newpath);
     return ret;
 }
+
+bool
+virCgroupV2DevicesAvailable(virCgroupPtr group G_GNUC_UNUSED)
+{
+    return true;
+}
 #else
 /* Nothing to override on non-__linux__ platforms */
 #endif
index c952676c25462a1f14f50d83c004fcfe5839f3fb..5e9f619a847918b242bead8aa0085eaef7b82d5a 100644 (file)
@@ -582,6 +582,7 @@ static int testCgroupNewForSelfUnified(const void *args G_GNUC_UNUSED)
         (1 << VIR_CGROUP_CONTROLLER_CPU) |
         (1 << VIR_CGROUP_CONTROLLER_CPUACCT) |
         (1 << VIR_CGROUP_CONTROLLER_MEMORY) |
+        (1 << VIR_CGROUP_CONTROLLER_DEVICES) |
         (1 << VIR_CGROUP_CONTROLLER_BLKIO);
 
     if (virCgroupNewSelf(&cgroup) < 0) {
@@ -604,14 +605,12 @@ static int testCgroupNewForSelfHybrid(const void *args G_GNUC_UNUSED)
     const char *empty[VIR_CGROUP_CONTROLLER_LAST] = { 0 };
     const char *mounts[VIR_CGROUP_CONTROLLER_LAST] = {
         [VIR_CGROUP_CONTROLLER_CPUSET] = "/not/really/sys/fs/cgroup/cpuset",
-        [VIR_CGROUP_CONTROLLER_DEVICES] = "/not/really/sys/fs/cgroup/devices",
         [VIR_CGROUP_CONTROLLER_FREEZER] = "/not/really/sys/fs/cgroup/freezer",
         [VIR_CGROUP_CONTROLLER_NET_CLS] = "/not/really/sys/fs/cgroup/net_cls",
         [VIR_CGROUP_CONTROLLER_PERF_EVENT] = "/not/really/sys/fs/cgroup/perf_event",
     };
     const char *placement[VIR_CGROUP_CONTROLLER_LAST] = {
         [VIR_CGROUP_CONTROLLER_CPUSET] = "/",
-        [VIR_CGROUP_CONTROLLER_DEVICES] = "/",
         [VIR_CGROUP_CONTROLLER_FREEZER] = "/",
         [VIR_CGROUP_CONTROLLER_NET_CLS] = "/",
         [VIR_CGROUP_CONTROLLER_PERF_EVENT] = "/",
@@ -620,6 +619,7 @@ static int testCgroupNewForSelfHybrid(const void *args G_GNUC_UNUSED)
         (1 << VIR_CGROUP_CONTROLLER_CPU) |
         (1 << VIR_CGROUP_CONTROLLER_CPUACCT) |
         (1 << VIR_CGROUP_CONTROLLER_MEMORY) |
+        (1 << VIR_CGROUP_CONTROLLER_DEVICES) |
         (1 << VIR_CGROUP_CONTROLLER_BLKIO);
 
     if (virCgroupNewSelf(&cgroup) < 0) {