vircgrouptest: call virCgroupDetectMounts directly

Because we can set which files to return for cgroup tests there
is no need to have special function tailored to run tests.

Reviewed-by: Fabiano Fidêncio <fidencio@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
Pavel Hrdina 2018-09-14 12:38:54 +02:00
parent 5cf1b25708
commit 4988f4b347
4 changed files with 15 additions and 28 deletions

View File

@ -1513,7 +1513,7 @@ virCgroupDelThread;
virCgroupDenyAllDevices;
virCgroupDenyDevice;
virCgroupDenyDevicePath;
virCgroupDetectMountsFromFile;
virCgroupDetectMounts;
virCgroupFree;
virCgroupGetBlkioDeviceReadBps;
virCgroupGetBlkioDeviceReadIops;

View File

@ -426,9 +426,7 @@ virCgroupMountOptsMatchController(const char *mntOpts,
* mounted and where
*/
int
virCgroupDetectMountsFromFile(virCgroupPtr group,
const char *path,
bool checkLinks)
virCgroupDetectMounts(virCgroupPtr group)
{
size_t i;
FILE *mounts = NULL;
@ -436,9 +434,9 @@ virCgroupDetectMountsFromFile(virCgroupPtr group,
char buf[CGROUP_MAX_VAL];
int ret = -1;
mounts = fopen(path, "r");
mounts = fopen("/proc/mounts", "r");
if (mounts == NULL) {
virReportSystemError(errno, _("Unable to open %s"), path);
virReportSystemError(errno, "%s", _("Unable to open /proc/mounts"));
return -1;
}
@ -466,8 +464,7 @@ virCgroupDetectMountsFromFile(virCgroupPtr group,
/* If it is a co-mount it has a filename like "cpu,cpuacct"
* and we must identify the symlink path */
if (checkLinks &&
virCgroupResolveMountLink(entry.mnt_dir, typestr,
if (virCgroupResolveMountLink(entry.mnt_dir, typestr,
controller) < 0) {
goto cleanup;
}
@ -481,12 +478,6 @@ virCgroupDetectMountsFromFile(virCgroupPtr group,
return ret;
}
static int
virCgroupDetectMounts(virCgroupPtr group)
{
return virCgroupDetectMountsFromFile(group, "/proc/mounts", true);
}
static int
virCgroupCopyPlacement(virCgroupPtr group,
@ -4086,9 +4077,7 @@ virCgroupAvailable(void)
int
virCgroupDetectMountsFromFile(virCgroupPtr group ATTRIBUTE_UNUSED,
const char *path ATTRIBUTE_UNUSED,
bool checkLinks ATTRIBUTE_UNUSED)
virCgroupDetectMounts(virCgroupPtr group ATTRIBUTE_UNUSED)
{
virReportSystemError(ENXIO, "%s",
_("Control groups not supported on this platform"));

View File

@ -50,9 +50,7 @@ struct _virCgroup {
virCgroupController controllers[VIR_CGROUP_CONTROLLER_LAST];
};
int virCgroupDetectMountsFromFile(virCgroupPtr group,
const char *path,
bool checkLinks);
int virCgroupDetectMounts(virCgroupPtr group);
int virCgroupNewPartition(const char *path,
bool create,

View File

@ -163,21 +163,21 @@ testCgroupDetectMounts(const void *args)
{
int result = -1;
const char *file = args;
char *mounts = NULL;
char *parsed = 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)
setenv("VIR_CGROUP_MOCK_FILENAME", file, 1);
if (virAsprintf(&parsed, "%s/vircgroupdata/%s.parsed", abs_srcdir, file) < 0)
goto cleanup;
if (virCgroupDetectMountsFromFile(group, mounts, false) < 0)
if (VIR_ALLOC(group) < 0)
goto cleanup;
if (virCgroupDetectMounts(group) < 0)
goto cleanup;
for (i = 0; i < VIR_CGROUP_CONTROLLER_LAST; i++) {
@ -195,7 +195,7 @@ testCgroupDetectMounts(const void *args)
result = 0;
cleanup:
VIR_FREE(mounts);
unsetenv("VIR_CGROUP_MOCK_FILENAME");
VIR_FREE(parsed);
virCgroupFree(&group);
virBufferFreeAndReset(&buf);